summaryrefslogtreecommitdiffstats
path: root/src/vulkan/anv_private.h
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2015-09-28 12:40:17 -0700
committerJason Ekstrand <[email protected]>2015-09-28 16:01:14 -0700
commitf06bc45b0c487227649e4083195361ed55525b91 (patch)
tree7856d5d22204474970f834cfb4bbd66db2f2dcda /src/vulkan/anv_private.h
parentd93f6385a7a41d6ea13809005520a44283a40405 (diff)
anv/batch_chain: Use the surface state pool for binding tables
Diffstat (limited to 'src/vulkan/anv_private.h')
-rw-r--r--src/vulkan/anv_private.h23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/vulkan/anv_private.h b/src/vulkan/anv_private.h
index 915460dadf4..eb02f09e07f 100644
--- a/src/vulkan/anv_private.h
+++ b/src/vulkan/anv_private.h
@@ -572,6 +572,9 @@ struct anv_batch_bo {
/* Bytes actually consumed in this batch BO */
size_t length;
+ /* Last seen surface state block pool bo offset */
+ uint32_t last_ss_pool_bo_offset;
+
struct anv_reloc_list relocs;
};
@@ -876,8 +879,6 @@ struct anv_cmd_buffer {
* These fields are initialized by anv_cmd_buffer_init_batch_bo_chain().
*/
struct list_head batch_bos;
- struct list_head surface_bos;
- uint32_t surface_next;
enum anv_cmd_buffer_exec_mode exec_mode;
/* A vector of anv_batch_bo pointers for every batch or surface buffer
@@ -887,6 +888,14 @@ struct anv_cmd_buffer {
*/
struct anv_vector seen_bbos;
+ /* A vector of int32_t's for every block of binding tables.
+ *
+ * initialized by anv_cmd_buffer_init_batch_bo_chain()
+ */
+ struct anv_vector bt_blocks;
+ uint32_t bt_next;
+ struct anv_reloc_list surface_relocs;
+
/* Information needed for execbuf
*
* These fields are generated by anv_cmd_buffer_prepare_execbuf().
@@ -940,21 +949,17 @@ struct anv_state anv_cmd_buffer_merge_dynamic(struct anv_cmd_buffer *cmd_buffer,
void anv_cmd_buffer_begin_subpass(struct anv_cmd_buffer *cmd_buffer,
struct anv_subpass *subpass);
-struct anv_reloc_list *
-anv_cmd_buffer_current_surface_relocs(struct anv_cmd_buffer *cmd_buffer);
struct anv_address
anv_cmd_buffer_surface_base_address(struct anv_cmd_buffer *cmd_buffer);
struct anv_state
-anv_cmd_buffer_alloc_surface_state(struct anv_cmd_buffer *cmd_buffer,
- uint32_t size, uint32_t alignment);
-struct anv_state
anv_cmd_buffer_alloc_binding_table(struct anv_cmd_buffer *cmd_buffer,
- uint32_t entries);
+ uint32_t entries, uint32_t *state_offset);
struct anv_state
anv_cmd_buffer_alloc_dynamic_state(struct anv_cmd_buffer *cmd_buffer,
uint32_t size, uint32_t alignment);
-VkResult anv_cmd_buffer_new_surface_state_bo(struct anv_cmd_buffer *cmd_buffer);
+VkResult
+anv_cmd_buffer_new_binding_table_block(struct anv_cmd_buffer *cmd_buffer);
void gen7_cmd_buffer_emit_state_base_address(struct anv_cmd_buffer *cmd_buffer);
void gen8_cmd_buffer_emit_state_base_address(struct anv_cmd_buffer *cmd_buffer);