[vulkan] Fix some bitrot in the forward render graph

Many issues, but this fixes the validation errors.
This commit is contained in:
Bill Currie 2024-01-15 19:36:52 +09:00
parent 8994042a47
commit 7ce94cde14
2 changed files with 39 additions and 8 deletions

View file

@ -116,7 +116,7 @@ vulkan_R_Init (void)
Vulkan_Translucent_Init (vulkan_ctx); Vulkan_Translucent_Init (vulkan_ctx);
Vulkan_Compose_Init (vulkan_ctx); Vulkan_Compose_Init (vulkan_ctx);
QFV_LoadRenderInfo (vulkan_ctx, "main_def"); QFV_LoadRenderInfo (vulkan_ctx, "main_fwd");
QFV_LoadSamplerInfo (vulkan_ctx, "smp_quake"); QFV_LoadSamplerInfo (vulkan_ctx, "smp_quake");
QFV_BuildRender (vulkan_ctx); QFV_BuildRender (vulkan_ctx);

View file

@ -371,7 +371,7 @@ properties = {
specializationInfo = { specializationInfo = {
@inherit = $iqm.shader.specialization; @inherit = $iqm.shader.specialization;
// IQMDepthOnly // IQMDepthOnly
data = "array(1)"; data = "array(1, 0)";
}; };
}; };
gbuf_vertex = { gbuf_vertex = {
@ -381,7 +381,7 @@ properties = {
specializationInfo = { specializationInfo = {
@inherit = $iqm.shader.specialization; @inherit = $iqm.shader.specialization;
// IQMDepthOnly // IQMDepthOnly
data = "array(0)"; data = "array(0, 0)";
}; };
}; };
gbuf_fragment = { gbuf_fragment = {
@ -418,6 +418,7 @@ properties = {
vertex = { vertex = {
Model = mat4; Model = mat4;
blend = float; blend = float;
MatrixBase = uint;
}; };
fragment = { fragment = {
colorA = uint; colorA = uint;
@ -741,6 +742,12 @@ descriptorSetLayouts = {
descriptorCount = 1; descriptorCount = 1;
stageFlags = vertex|fragment; stageFlags = vertex|fragment;
}, },
{
binding = 1;
descriptorType = storage_buffer;
descriptorCount = 1;
stageFlags = vertex|fragment;
},
); );
}; };
quad_data_set = { quad_data_set = {
@ -877,10 +884,34 @@ descriptorSetLayouts = {
bindings = ( bindings = (
{ {
binding = 0; binding = 0;
descriptorType = uniform_buffer; descriptorType = storage_buffer;
descriptorCount = 1; descriptorCount = 1;
stageFlags = vertex|fragment; stageFlags = vertex|fragment;
}, },
{
binding = 1;
descriptorType = storage_buffer;
descriptorCount = 1;
stageFlags = vertex|fragment;
},
{
binding = 2;
descriptorType = storage_buffer;
descriptorCount = 1;
stageFlags = fragment;
},
{
binding = 3;
descriptorType = storage_buffer;
descriptorCount = 1;
stageFlags = fragment;
},
{
binding = 4;
descriptorType = storage_buffer;
descriptorCount = 1;
stageFlags = vertex;
},
); );
}; };
lighting_shadow = { lighting_shadow = {
@ -973,7 +1004,7 @@ descriptorSetLayouts = {
images = { images = {
depth = { depth = {
@inherit = $image_base; @inherit = $image_base;
format = x8_d24_unorm_pack32; format = d32_sfloat;
usage = depth_stencil_attachment|input_attachment|transient_attachment; usage = depth_stencil_attachment|input_attachment|transient_attachment;
}; };
color = { color = {
@ -983,7 +1014,7 @@ images = {
}; };
cube_depth = { cube_depth = {
@inherit = $cube_image_base; @inherit = $cube_image_base;
format = x8_d24_unorm_pack32; format = d32_sfloat;
usage = depth_stencil_attachment|input_attachment|transient_attachment; usage = depth_stencil_attachment|input_attachment|transient_attachment;
}; };
cube_color = { cube_color = {
@ -1095,7 +1126,7 @@ renderpasses = {
color = $color.alias; color = $color.alias;
tasks = ( tasks = (
{ func = alias_draw; { func = alias_draw;
params = (0); }, params = (main, 0); },
); );
stages = ( stages = (
@ -1190,7 +1221,7 @@ renderpasses = {
color = $color.alias; color = $color.alias;
tasks = ( tasks = (
{ func = alias_draw; { func = alias_draw;
params = (1); }, params = (main, 1); },
); );
stages = ( stages = (