radv: determine if sample positions are needed at pipeline bind time
Like other ring stuff that depends on pipelines. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19654>
This commit is contained in:
committed by
Marge Bot
parent
5c9ade2464
commit
d4ce63a87a
@@ -1134,9 +1134,6 @@ radv_update_multisample_state(struct radv_cmd_buffer *cmd_buffer,
|
||||
int num_samples = pipeline->ms.num_samples;
|
||||
struct radv_graphics_pipeline *old_pipeline = cmd_buffer->state.emitted_graphics_pipeline;
|
||||
|
||||
if (pipeline->base.shaders[MESA_SHADER_FRAGMENT]->info.ps.needs_sample_positions)
|
||||
cmd_buffer->sample_positions_needed = true;
|
||||
|
||||
if (old_pipeline && num_samples == old_pipeline->ms.num_samples)
|
||||
return;
|
||||
|
||||
@@ -5941,6 +5938,9 @@ radv_CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipeline
|
||||
|
||||
radv_bind_vs_input_state(cmd_buffer, graphics_pipeline);
|
||||
|
||||
if (graphics_pipeline->base.shaders[MESA_SHADER_FRAGMENT]->info.ps.needs_sample_positions)
|
||||
cmd_buffer->sample_positions_needed = true;
|
||||
|
||||
if (graphics_pipeline->esgs_ring_size > cmd_buffer->esgs_ring_size_needed)
|
||||
cmd_buffer->esgs_ring_size_needed = graphics_pipeline->esgs_ring_size;
|
||||
if (graphics_pipeline->gsvs_ring_size > cmd_buffer->gsvs_ring_size_needed)
|
||||
|
||||
Reference in New Issue
Block a user