mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 02:48:06 +02:00
radv: Fix single stage constant flush with merged shaders.
e.g. a VERTEX only flush with tess on Vega should look at the TCS
to see which bits are needed.
CC: <mesa-stable@lists.freedesktop.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1953
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit fd21ee8b52)
Conflicts resolved by Dylan Baker
Conflicts:
src/amd/vulkan/radv_cmd_buffer.c
This commit is contained in:
parent
35b900310b
commit
ad56aaef4f
1 changed files with 6 additions and 5 deletions
|
|
@ -2268,14 +2268,15 @@ radv_flush_constants(struct radv_cmd_buffer *cmd_buffer,
|
|||
return;
|
||||
|
||||
radv_foreach_stage(stage, stages) {
|
||||
if (!pipeline->shaders[stage])
|
||||
shader = radv_get_shader(pipeline, stage);
|
||||
if (!shader)
|
||||
continue;
|
||||
|
||||
need_push_constants |= pipeline->shaders[stage]->info.info.loads_push_constants;
|
||||
need_push_constants |= pipeline->shaders[stage]->info.info.loads_dynamic_offsets;
|
||||
need_push_constants |= shader->info.info.loads_push_constants;
|
||||
need_push_constants |= shader->info.info.loads_dynamic_offsets;
|
||||
|
||||
uint8_t base = pipeline->shaders[stage]->info.info.base_inline_push_consts;
|
||||
uint8_t count = pipeline->shaders[stage]->info.info.num_inline_push_consts;
|
||||
uint8_t base = shader->info.info.base_inline_push_consts;
|
||||
uint8_t count = shader->info.info.num_inline_push_consts;
|
||||
|
||||
radv_emit_inline_push_consts(cmd_buffer, pipeline, stage,
|
||||
AC_UD_INLINE_PUSH_CONSTANTS,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue