aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2015-09-23 12:31:50 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-09-23 18:15:15 -0600
commit332a36706fff1c44e72b8fce6bda3431856639d9 (patch)
tree17a7a132b71a1c02c5b0e28adabf5f8da5dbeba0 /include
parent5ae2eb9bfe5e0afad85e6f3410ad66c89aefee72 (diff)
downloadusermoji-332a36706fff1c44e72b8fce6bda3431856639d9.tar.xz
bug-14715: DrawIndirect fix
This patch contains fixes to structure layout for draws. These structures are accessed by HW and must be in a specific order. This change also includes reordering of the parameters for vkCmdDraw and vkCmdDrawIndexed.
Diffstat (limited to 'include')
-rw-r--r--include/vulkan.h34
1 files changed, 17 insertions, 17 deletions
diff --git a/include/vulkan.h b/include/vulkan.h
index 8be2b4f3..03bcefea 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -2013,11 +2013,6 @@ typedef struct {
uint32_t stencil;
} VkClearDepthStencilValue;
-typedef union {
- VkClearColorValue color;
- VkClearDepthStencilValue depthStencil;
-} VkClearValue;
-
typedef struct {
VkOffset3D offset;
VkExtent3D extent;
@@ -2031,6 +2026,11 @@ typedef struct {
VkExtent3D extent;
} VkImageResolve;
+typedef union {
+ VkClearColorValue color;
+ VkClearDepthStencilValue depthStencil;
+} VkClearValue;
+
typedef struct {
VkStructureType sType;
const void* pNext;
@@ -2060,18 +2060,18 @@ typedef struct {
} VkDispatchIndirectCmd;
typedef struct {
- uint32_t firstIndex;
uint32_t indexCount;
+ uint32_t instanceCount;
+ uint32_t firstIndex;
int32_t vertexOffset;
uint32_t firstInstance;
- uint32_t instanceCount;
} VkDrawIndexedIndirectCmd;
typedef struct {
- uint32_t firstVertex;
uint32_t vertexCount;
- uint32_t firstInstance;
uint32_t instanceCount;
+ uint32_t firstVertex;
+ uint32_t firstInstance;
} VkDrawIndirectCmd;
typedef struct {
@@ -2208,8 +2208,8 @@ typedef void (VKAPI *PFN_vkCmdSetStencilReference)(VkCmdBuffer cmdBuffer, VkSten
typedef void (VKAPI *PFN_vkCmdBindDescriptorSets)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
typedef void (VKAPI *PFN_vkCmdBindIndexBuffer)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
typedef void (VKAPI *PFN_vkCmdBindVertexBuffers)(VkCmdBuffer cmdBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
-typedef void (VKAPI *PFN_vkCmdDraw)(VkCmdBuffer cmdBuffer, uint32_t firstVertex, uint32_t vertexCount, uint32_t firstInstance, uint32_t instanceCount);
-typedef void (VKAPI *PFN_vkCmdDrawIndexed)(VkCmdBuffer cmdBuffer, uint32_t firstIndex, uint32_t indexCount, int32_t vertexOffset, uint32_t firstInstance, uint32_t instanceCount);
+typedef void (VKAPI *PFN_vkCmdDraw)(VkCmdBuffer cmdBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
+typedef void (VKAPI *PFN_vkCmdDrawIndexed)(VkCmdBuffer cmdBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
typedef void (VKAPI *PFN_vkCmdDrawIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride);
typedef void (VKAPI *PFN_vkCmdDrawIndexedIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride);
typedef void (VKAPI *PFN_vkCmdDispatch)(VkCmdBuffer cmdBuffer, uint32_t x, uint32_t y, uint32_t z);
@@ -2806,18 +2806,18 @@ void VKAPI vkCmdBindVertexBuffers(
void VKAPI vkCmdDraw(
VkCmdBuffer cmdBuffer,
- uint32_t firstVertex,
uint32_t vertexCount,
- uint32_t firstInstance,
- uint32_t instanceCount);
+ uint32_t instanceCount,
+ uint32_t firstVertex,
+ uint32_t firstInstance);
void VKAPI vkCmdDrawIndexed(
VkCmdBuffer cmdBuffer,
- uint32_t firstIndex,
uint32_t indexCount,
+ uint32_t instanceCount,
+ uint32_t firstIndex,
int32_t vertexOffset,
- uint32_t firstInstance,
- uint32_t instanceCount);
+ uint32_t firstInstance);
void VKAPI vkCmdDrawIndirect(
VkCmdBuffer cmdBuffer,