anv: Move push constant allocation to the command buffer
Instead of blasting it out as part of the pipeline, we put it in the command buffer and only blast it out when it's really needed. Since the PUSH_CONSTANT_ALLOC commands aren't pipelined, they immediately cause a stall which we would like to avoid. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
@@ -1177,6 +1177,7 @@ struct anv_cmd_state {
|
||||
uint32_t restart_index;
|
||||
struct anv_vertex_binding vertex_bindings[MAX_VBS];
|
||||
struct anv_descriptor_set * descriptors[MAX_SETS];
|
||||
VkShaderStageFlags push_constant_stages;
|
||||
struct anv_push_constants * push_constants[MESA_SHADER_STAGES];
|
||||
struct anv_state binding_tables[MESA_SHADER_STAGES];
|
||||
struct anv_state samplers[MESA_SHADER_STAGES];
|
||||
@@ -1411,7 +1412,6 @@ struct anv_pipeline {
|
||||
uint32_t scratch_start[MESA_SHADER_STAGES];
|
||||
uint32_t total_scratch;
|
||||
struct {
|
||||
uint8_t push_size[MESA_SHADER_FRAGMENT + 1];
|
||||
uint32_t start[MESA_SHADER_GEOMETRY + 1];
|
||||
uint32_t size[MESA_SHADER_GEOMETRY + 1];
|
||||
uint32_t entries[MESA_SHADER_GEOMETRY + 1];
|
||||
|
Reference in New Issue
Block a user