diff --git a/libs/video/renderer/vid_render_vulkan.c b/libs/video/renderer/vid_render_vulkan.c index 97f46e9ef..fadb764f8 100644 --- a/libs/video/renderer/vid_render_vulkan.c +++ b/libs/video/renderer/vid_render_vulkan.c @@ -116,7 +116,7 @@ vulkan_R_Init (void) Vulkan_Translucent_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_BuildRender (vulkan_ctx); diff --git a/libs/video/renderer/vulkan/rp_main_fwd.plist b/libs/video/renderer/vulkan/rp_main_fwd.plist index eea565043..5648205e4 100644 --- a/libs/video/renderer/vulkan/rp_main_fwd.plist +++ b/libs/video/renderer/vulkan/rp_main_fwd.plist @@ -371,7 +371,7 @@ properties = { specializationInfo = { @inherit = $iqm.shader.specialization; // IQMDepthOnly - data = "array(1)"; + data = "array(1, 0)"; }; }; gbuf_vertex = { @@ -381,7 +381,7 @@ properties = { specializationInfo = { @inherit = $iqm.shader.specialization; // IQMDepthOnly - data = "array(0)"; + data = "array(0, 0)"; }; }; gbuf_fragment = { @@ -418,6 +418,7 @@ properties = { vertex = { Model = mat4; blend = float; + MatrixBase = uint; }; fragment = { colorA = uint; @@ -741,6 +742,12 @@ descriptorSetLayouts = { descriptorCount = 1; stageFlags = vertex|fragment; }, + { + binding = 1; + descriptorType = storage_buffer; + descriptorCount = 1; + stageFlags = vertex|fragment; + }, ); }; quad_data_set = { @@ -877,10 +884,34 @@ descriptorSetLayouts = { bindings = ( { binding = 0; - descriptorType = uniform_buffer; + descriptorType = storage_buffer; descriptorCount = 1; 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 = { @@ -973,7 +1004,7 @@ descriptorSetLayouts = { images = { depth = { @inherit = $image_base; - format = x8_d24_unorm_pack32; + format = d32_sfloat; usage = depth_stencil_attachment|input_attachment|transient_attachment; }; color = { @@ -983,7 +1014,7 @@ images = { }; cube_depth = { @inherit = $cube_image_base; - format = x8_d24_unorm_pack32; + format = d32_sfloat; usage = depth_stencil_attachment|input_attachment|transient_attachment; }; cube_color = { @@ -1095,7 +1126,7 @@ renderpasses = { color = $color.alias; tasks = ( { func = alias_draw; - params = (0); }, + params = (main, 0); }, ); stages = ( @@ -1190,7 +1221,7 @@ renderpasses = { color = $color.alias; tasks = ( { func = alias_draw; - params = (1); }, + params = (main, 1); }, ); stages = (