diff options
author | Kristian Høgsberg Kristensen <[email protected]> | 2016-01-07 16:25:49 -0800 |
---|---|---|
committer | Kristian Høgsberg Kristensen <[email protected]> | 2016-01-07 16:31:57 -0800 |
commit | 1b1dca75a401b2d885ae7583837a63c3f66da022 (patch) | |
tree | 24b81bbc7c48065082869e05c8c412a8bf7f7f20 /src/vulkan/anv_private.h | |
parent | a18b5e642ce70c3d4d5f7f243ee562baa3161306 (diff) |
vk: Make sure we emit binding table pointers after push constants
SKL needs this to make sure we flush the push constants. It gets a
little tricky, since we also need to emit binding tables before push
constants, since that may affect the push constants (dynamic buffer
offsets and storage image parameters). This patch splits emitting
binding tables from emitting the pointers so that we can emit push
constants after binding tables but before emitting binding table
pointers.
Diffstat (limited to 'src/vulkan/anv_private.h')
-rw-r--r-- | src/vulkan/anv_private.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/vulkan/anv_private.h b/src/vulkan/anv_private.h index 0cd8ab6facd..ded2d9a5e24 100644 --- a/src/vulkan/anv_private.h +++ b/src/vulkan/anv_private.h @@ -1079,6 +1079,8 @@ struct anv_cmd_state { struct anv_vertex_binding vertex_bindings[MAX_VBS]; struct anv_descriptor_set * descriptors[MAX_SETS]; struct anv_push_constants * push_constants[MESA_SHADER_STAGES]; + struct anv_state binding_tables[MESA_SHADER_STAGES]; + struct anv_state samplers[MESA_SHADER_STAGES]; struct anv_dynamic_state dynamic; struct { @@ -1176,7 +1178,9 @@ VkResult anv_cmd_buffer_emit_binding_table(struct anv_cmd_buffer *cmd_buffer, unsigned stage, struct anv_state *bt_state); VkResult anv_cmd_buffer_emit_samplers(struct anv_cmd_buffer *cmd_buffer, unsigned stage, struct anv_state *state); -void gen7_cmd_buffer_flush_descriptor_sets(struct anv_cmd_buffer *cmd_buffer); +uint32_t gen7_cmd_buffer_flush_descriptor_sets(struct anv_cmd_buffer *cmd_buffer); +void gen7_cmd_buffer_emit_descriptor_pointers(struct anv_cmd_buffer *cmd_buffer, + uint32_t stages); struct anv_state anv_cmd_buffer_emit_dynamic(struct anv_cmd_buffer *cmd_buffer, const void *data, uint32_t size, uint32_t alignment); |