summaryrefslogtreecommitdiffstats
path: root/src/amd/vulkan/radv_private.h
diff options
context:
space:
mode:
authorFredrik Höglund <[email protected]>2017-03-29 18:12:44 +0200
committerFredrik Höglund <[email protected]>2017-04-07 00:54:46 +0200
commitc6487bc48bb084ec3d4a3c331239d690dfc94436 (patch)
tree07398ca3e6d7f3a92f48e923da2f05a399b89bfd /src/amd/vulkan/radv_private.h
parent3b33f03913d6c41aedf01a63c8b847c058a73f2f (diff)
radv: implement VK_KHR_push_descriptor
Signed-off-by: Fredrik Höglund <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_private.h')
-rw-r--r--src/amd/vulkan/radv_private.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index cba1891d1e5..e39819fff3e 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -79,6 +79,7 @@ typedef uint32_t xcb_window_t;
#define MAX_VIEWPORTS 16
#define MAX_SCISSORS 16
#define MAX_PUSH_CONSTANTS_SIZE 128
+#define MAX_PUSH_DESCRIPTORS 32
#define MAX_DYNAMIC_BUFFERS 16
#define MAX_SAMPLES_LOG2 4
#define NUM_META_FS_KEYS 11
@@ -549,6 +550,12 @@ struct radv_descriptor_set {
struct radeon_winsys_bo *descriptors[0];
};
+struct radv_push_descriptor_set
+{
+ struct radv_descriptor_set set;
+ uint32_t capacity;
+};
+
struct radv_descriptor_pool {
struct radeon_winsys_bo *bo;
uint8_t *mapped_ptr;
@@ -682,6 +689,7 @@ struct radv_cmd_state {
uint32_t vb_dirty;
radv_cmd_dirty_mask_t dirty;
bool vertex_descriptors_dirty;
+ bool push_descriptors_dirty;
struct radv_pipeline * pipeline;
struct radv_pipeline * emitted_pipeline;
@@ -739,6 +747,7 @@ struct radv_cmd_buffer {
uint8_t push_constants[MAX_PUSH_CONSTANTS_SIZE];
uint32_t dynamic_buffers[4 * MAX_DYNAMIC_BUFFERS];
VkShaderStageFlags push_constant_stages;
+ struct radv_push_descriptor_set push_descriptors;
struct radv_cmd_buffer_upload upload;