summaryrefslogtreecommitdiffstats
path: root/src/vulkan/anv_private.h
diff options
context:
space:
mode:
authorKristian Høgsberg Kristensen <[email protected]>2016-01-07 16:25:49 -0800
committerKristian Høgsberg Kristensen <[email protected]>2016-01-07 16:31:57 -0800
commit1b1dca75a401b2d885ae7583837a63c3f66da022 (patch)
tree24b81bbc7c48065082869e05c8c412a8bf7f7f20 /src/vulkan/anv_private.h
parenta18b5e642ce70c3d4d5f7f243ee562baa3161306 (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.h6
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);