[vulkan] Update shaders and layouts for new scheme

Still need to work on the code, though.
This commit is contained in:
Bill Currie 2021-12-08 16:44:22 +09:00
parent 8422732505
commit 2740f6093b
11 changed files with 35 additions and 111 deletions

View file

@ -155,7 +155,7 @@
binding = 0;
descriptorType = uniform_buffer;
descriptorCount = 1;
stageFlags = vertex;
stageFlags = vertex|geometry;
},
);
};
@ -173,38 +173,14 @@
bindings = (
{
binding = 0;
descriptorType = uniform_buffer;
descriptorType = sampler;
descriptorCount = 1;
stageFlags = vertex|geometry;
stageFlags = fragment;
},
{
binding = 1;
descriptorType = combined_image_sampler;
descriptorCount = 1;
stageFlags = fragment;
},
{
binding = 2;
descriptorType = combined_image_sampler;
descriptorCount = 1;
stageFlags = fragment;
},
{
binding = 3;
descriptorType = combined_image_sampler;
descriptorCount = 1;
stageFlags = fragment;
},
{
binding = 4;
descriptorType = combined_image_sampler;
descriptorCount = 1;
stageFlags = fragment;
},
{
binding = 5;
descriptorType = combined_image_sampler;
descriptorCount = 1;
descriptorType = sampled_image;
descriptorCount = $properties.limits.maxImages;
stageFlags = fragment;
},
);
@ -213,9 +189,9 @@
bindings = (
{
binding = 0;
descriptorType = uniform_buffer;
descriptorType = sampler;
descriptorCount = 1;
stageFlags = vertex;
stageFlags = fragment;
},
{
binding = 1;
@ -223,60 +199,6 @@
descriptorCount = $properties.limits.maxImages;
stageFlags = fragment;
},
{
binding = 2;
descriptorType = sampler;
descriptorCount = 1;
stageFlags = fragment;
},
);
};
alias_matrices = {
bindings = (
{
binding = 0;
descriptorType = uniform_buffer;
descriptorCount = 1;
stageFlags = vertex;
},
);
};
alias_textures = {
bindings = (
{
binding = 0;
descriptorType = combined_image_sampler;
descriptorCount = 1;
stageFlags = fragment;
},
{
binding = 1;
descriptorType = combined_image_sampler;
descriptorCount = 1;
stageFlags = fragment;
},
{
binding = 2;
descriptorType = combined_image_sampler;
descriptorCount = 1;
stageFlags = fragment;
},
{
binding = 3;
descriptorType = combined_image_sampler;
descriptorCount = 1;
stageFlags = fragment;
},
);
};
alias_lights = {
bindings = (
{
binding = 0;
descriptorType = uniform_buffer;
descriptorCount = 1;
stageFlags = fragment;
},
);
};
lighting_attach = {
@ -355,7 +277,7 @@
setLayouts = (matrix_set, twod_set);
};
quakebsp_layout = {
setLayouts = (quakebsp_set);
setLayouts = (matrix_set, quakebsp_set);
pushConstantRanges = (
{
stageFlags = vertex;
@ -370,8 +292,7 @@
);
};
alias_layout = {
//setLayouts = (alias_matrices, alias_lights, alias_textures);
setLayouts = (alias_set);
setLayouts = (matrix_set, alias_set);
pushConstantRanges = (
{
stageFlags = vertex;

View file

@ -1,9 +1,10 @@
#version 450
layout (set = 0, binding = 0) uniform Matrices {
mat4 Projection;
mat4 Projection3d;
mat4 View;
mat4 Sky;
mat4 Projection2d;
};
layout (push_constant) uniform PushConstants {
@ -31,7 +32,7 @@ main (void)
vertex = mix (vertexa, vertexb, blend);
norm = mix (normala, normalb, blend);
pos = (Model * vertex);
gl_Position = Projection * (View * pos);
gl_Position = Projection3d * (View * pos);
position = pos;
normal = mat3 (Model) * norm;
st = uv;

View file

@ -1,9 +1,10 @@
#version 450
layout (set = 0, binding = 0) uniform Matrices {
mat4 Projection;
mat4 Projection3d;
mat4 View;
mat4 Sky;
mat4 Projection2d;
};
layout (push_constant) uniform PushConstants {
@ -24,5 +25,5 @@ main (void)
vertex = mix (vertexa, vertexb, blend);
pos = (Model * vertex);
gl_Position = Projection * (View * pos);
gl_Position = Projection3d * (View * pos);
}

View file

@ -2,8 +2,8 @@
layout (constant_id = 0) const int MaxTextures = 256;
layout (set = 0, binding = 1) uniform texture2DArray skins[MaxTextures];
layout (set = 0, binding = 2) uniform sampler samp;
layout (set = 1, binding = 0) uniform sampler samp;
layout (set = 1, binding = 1) uniform texture2DArray skins[MaxTextures];
layout (push_constant) uniform PushConstants {
layout (offset = 68)

View file

@ -1,9 +1,10 @@
#version 450
layout (set = 0, binding = 0) uniform Matrices {
mat4 Projection;
mat4 Projection3d;
mat4 View;
mat4 Sky;
mat4 Projection2d;
};
layout (push_constant) uniform PushConstants {
@ -15,5 +16,5 @@ layout (location = 0) in vec4 vertex;
void
main (void)
{
gl_Position = Projection * (View * (Model * vertex));
gl_Position = Projection3d * (View * (Model * vertex));
}

View file

@ -2,11 +2,8 @@
layout (constant_id = 0) const int MaxTextures = 256;
layout (set = 0, binding = 1) uniform texture2DArray textures[MaxTextures];
layout (set = 0, binding = 2) uniform sampler samp;
layout (set = 0, binding = 1) uniform sampler2D Texture;
layout (set = 0, binding = 2) uniform sampler2D GlowMap;
layout (set = 1, binding = 0) uniform sampler samp;
layout (set = 1, binding = 1) uniform texture2DArray textures[MaxTextures];
layout (push_constant) uniform PushConstants {
layout (offset = 64)

View file

@ -1,9 +1,10 @@
#version 450
layout (set = 0, binding = 0) uniform Matrices {
mat4 Projection;
mat4 Projection3d;
mat4 View;
mat4 Sky;
mat4 Projection2d;
};
layout (triangles) in;
@ -27,7 +28,7 @@ main()
for (int vert = 0; vert < 3; vert++) {
vec4 p = gl_in[vert].gl_Position;
gl_Position = Projection * (View * (p));
gl_Position = Projection3d * (View * (p));
tl_st = v_tl_st[vert];
direction = v_direction[vert];
normal = n;

View file

@ -1,9 +1,10 @@
#version 450
layout (set = 0, binding = 0) uniform Matrices {
mat4 Projection;
mat4 Projection3d;
mat4 View;
mat4 Sky;
mat4 Projection2d;
};
layout (push_constant) uniform PushConstants {

View file

@ -4,9 +4,9 @@ layout (constant_id = 0) const int MaxTextures = 256;
layout (constant_id = 1) const bool doSkyBox = false;
layout (constant_id = 2) const bool doSkySheet = false;
layout (set = 0, binding = 1) uniform texture2DArray sheet_tex[MaxTextures];
layout (set = 0, binding = 1) uniform textureCube cube_tex[MaxTextures];
layout (set = 0, binding = 2) uniform sampler samp;
layout (set = 1, binding = 0) uniform sampler samp;
layout (set = 1, binding = 1) uniform texture2DArray sheet_tex[MaxTextures];
layout (set = 1, binding = 1) uniform textureCube cube_tex[MaxTextures];
layout (push_constant) uniform PushConstants {
layout (offset = 64)

View file

@ -2,8 +2,8 @@
layout (constant_id = 0) const int MaxTextures = 256;
layout (set = 0, binding = 1) uniform texture2D textures[MaxTextures];
layout (set = 0, binding = 2) uniform sampler samp;
layout (set = 1, binding = 0) uniform sampler samp;
layout (set = 1, binding = 1) uniform texture2D textures[MaxTextures];
layout (push_constant) uniform PushConstants {
layout (offset = 64)

View file

@ -1,9 +1,10 @@
#version 450
layout (set = 0, binding = 0) uniform Matrices {
mat4 Projection;
mat4 Projection3d;
mat4 View;
mat4 Sky;
mat4 Projection2d;
};
layout (push_constant) uniform PushConstants {
@ -19,7 +20,7 @@ layout (location = 1) out vec3 direction;
void
main (void)
{
gl_Position = Projection * (View * (Model * vertex));
gl_Position = Projection3d * (View * (Model * vertex));
direction = (Sky * vertex).xyz;
tl_st = tl_uv;
}