Procházet zdrojové kódy

anv/cmd_buffer: Dirty push constants when changing pipelines.

tags/12.0-branchpoint
Jason Ekstrand před 9 roky
rodič
revize
097564bb8e

+ 11
- 0
src/intel/vulkan/gen7_cmd_buffer.c Zobrazit soubor

@@ -470,6 +470,17 @@ genX(cmd_buffer_flush_state)(struct anv_cmd_buffer *cmd_buffer)
gen7_cmd_buffer_emit_state_base_address(cmd_buffer);

anv_batch_emit_batch(&cmd_buffer->batch, &pipeline->batch);

/* From the BDW PRM for 3DSTATE_PUSH_CONSTANT_ALLOC_VS:
*
* "The 3DSTATE_CONSTANT_VS must be reprogrammed prior to
* the next 3DPRIMITIVE command after programming the
* 3DSTATE_PUSH_CONSTANT_ALLOC_VS"
*
* Since 3DSTATE_PUSH_CONSTANT_ALLOC_VS is programmed as part of
* pipeline setup, we need to dirty push constants.
*/
cmd_buffer->state.push_constants_dirty |= VK_SHADER_STAGE_ALL_GRAPHICS;
}

if (cmd_buffer->state.descriptors_dirty & VK_SHADER_STAGE_VERTEX_BIT ||

+ 11
- 0
src/intel/vulkan/gen8_cmd_buffer.c Zobrazit soubor

@@ -286,6 +286,17 @@ genX(cmd_buffer_flush_state)(struct anv_cmd_buffer *cmd_buffer)
anv_cmd_buffer_emit_state_base_address(cmd_buffer);

anv_batch_emit_batch(&cmd_buffer->batch, &pipeline->batch);

/* From the BDW PRM for 3DSTATE_PUSH_CONSTANT_ALLOC_VS:
*
* "The 3DSTATE_CONSTANT_VS must be reprogrammed prior to
* the next 3DPRIMITIVE command after programming the
* 3DSTATE_PUSH_CONSTANT_ALLOC_VS"
*
* Since 3DSTATE_PUSH_CONSTANT_ALLOC_VS is programmed as part of
* pipeline setup, we need to dirty push constants.
*/
cmd_buffer->state.push_constants_dirty |= VK_SHADER_STAGE_ALL_GRAPHICS;
}

/* We emit the binding tables and sampler tables first, then emit push

Načítá se…
Zrušit
Uložit