aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Forbes <chrisf@ijw.co.nz>2015-06-24 14:34:53 +1200
committerChris Forbes <chrisf@ijw.co.nz>2015-07-07 14:54:05 +1200
commit5cf9608c7edda155e5f4aa2327b4fd57cc188fc9 (patch)
tree62e86ecbdf95fd4d6496b1a087900ba7c7706bed
parentd0100a40aa1d733911f7238be3b9b3f1a024c764 (diff)
downloadusermoji-5cf9608c7edda155e5f4aa2327b4fd57cc188fc9.tar.xz
vulkan.h: v129 -- rework clear colors, remove raw clear [#14020]
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
-rw-r--r--demos/cube.c5
-rw-r--r--demos/tri.c5
-rw-r--r--icd/nulldrv/nulldrv.c2
-rw-r--r--include/vulkan.h23
-rw-r--r--layers/draw_state.cpp6
-rw-r--r--layers/image.cpp4
-rw-r--r--layers/mem_tracker.cpp2
-rw-r--r--layers/param_checker.cpp4
-rw-r--r--loader/trampoline.c4
-rwxr-xr-xvulkan.py4
10 files changed, 26 insertions, 33 deletions
diff --git a/demos/cube.c b/demos/cube.c
index 85f31606..e6154578 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -479,9 +479,8 @@ static void demo_draw_build_cmd(struct demo *demo, VkCmdBuffer cmd_buf)
.view = demo->depth.view,
.layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
};
- const VkClearColor clear_color = {
- .color.floatColor = { 0.2f, 0.2f, 0.2f, 0.2f },
- .useRawValue = false,
+ const VkClearColorValue clear_color = {
+ .f32 = { 0.2f, 0.2f, 0.2f, 0.2f },
};
const float clear_depth = 1.0f;
VkCmdBufferBeginInfo cmd_buf_info = {
diff --git a/demos/tri.c b/demos/tri.c
index 10556bfb..af6f05e1 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -286,9 +286,8 @@ static void demo_draw_build_cmd(struct demo *demo)
.view = demo->depth.view,
.layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
};
- const VkClearColor clear_color = {
- .color.floatColor = { 0.2f, 0.2f, 0.2f, 0.2f },
- .useRawValue = false,
+ const VkClearColorValue clear_color = {
+ .f32 = { 0.2f, 0.2f, 0.2f, 0.2f },
};
const float clear_depth = 0.9f;
VkCmdBufferBeginInfo cmd_buf_info = {
diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c
index 05a8da80..fb043397 100644
--- a/icd/nulldrv/nulldrv.c
+++ b/icd/nulldrv/nulldrv.c
@@ -986,7 +986,7 @@ ICD_EXPORT void VKAPI vkCmdClearColorImage(
VkCmdBuffer cmdBuffer,
VkImage image,
VkImageLayout imageLayout,
- const VkClearColor *pColor,
+ const VkClearColorValue *pColor,
uint32_t rangeCount,
const VkImageSubresourceRange* pRanges)
{
diff --git a/include/vulkan.h b/include/vulkan.h
index b023b69c..77098430 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -2049,19 +2049,14 @@ typedef struct VkRenderPassBegin_
VkRenderPassContents contents;
} VkRenderPassBegin;
-// Union allowing specification of floating point or raw color data. Actual value selected is based on image being cleared.
+// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on format.
typedef union VkClearColorValue_
{
- float floatColor[4];
- uint32_t rawColor[4];
+ float f32[4];
+ int32_t s32[4];
+ uint32_t u32[4];
} VkClearColorValue;
-typedef struct VkClearColor_
-{
- VkClearColorValue color;
- bool32_t useRawValue;
-} VkClearColor;
-
typedef struct VkRenderPassCreateInfo_
{
VkStructureType sType; // Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
@@ -2076,7 +2071,7 @@ typedef struct VkRenderPassCreateInfo_
const VkImageLayout* pColorLayouts;
const VkAttachmentLoadOp* pColorLoadOps;
const VkAttachmentStoreOp* pColorStoreOps;
- const VkClearColor* pColorLoadClearValues;
+ const VkClearColorValue* pColorLoadClearValues;
VkFormat depthStencilFormat;
VkImageLayout depthStencilLayout;
VkAttachmentLoadOp depthLoadOp;
@@ -2253,9 +2248,9 @@ typedef void (VKAPI *PFN_vkCmdCopyBufferToImage)(VkCmdBuffer cmdBuffer, VkBu
typedef void (VKAPI *PFN_vkCmdCopyImageToBuffer)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer destBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
typedef void (VKAPI *PFN_vkCmdUpdateBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize dataSize, const uint32_t* pData);
typedef void (VKAPI *PFN_vkCmdFillBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize fillSize, uint32_t data);
-typedef void (VKAPI *PFN_vkCmdClearColorImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColor* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
+typedef void (VKAPI *PFN_vkCmdClearColorImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
typedef void (VKAPI *PFN_vkCmdClearDepthStencilImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, float depth, uint32_t stencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
-typedef void (VKAPI *PFN_vkCmdClearColorAttachment)(VkCmdBuffer cmdBuffer, uint32_t colorAttachment, VkImageLayout imageLayout, const VkClearColor* pColor, uint32_t rectCount, const VkRect3D* pRects);
+typedef void (VKAPI *PFN_vkCmdClearColorAttachment)(VkCmdBuffer cmdBuffer, uint32_t colorAttachment, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rectCount, const VkRect3D* pRects);
typedef void (VKAPI *PFN_vkCmdClearDepthStencilAttachment)(VkCmdBuffer cmdBuffer, VkImageAspectFlags imageAspectMask, VkImageLayout imageLayout, float depth, uint32_t stencil, uint32_t rectCount, const VkRect3D* pRects);
typedef void (VKAPI *PFN_vkCmdResolveImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
typedef void (VKAPI *PFN_vkCmdSetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask);
@@ -2836,7 +2831,7 @@ void VKAPI vkCmdClearColorImage(
VkCmdBuffer cmdBuffer,
VkImage image,
VkImageLayout imageLayout,
- const VkClearColor* pColor,
+ const VkClearColorValue* pColor,
uint32_t rangeCount,
const VkImageSubresourceRange* pRanges);
@@ -2853,7 +2848,7 @@ void VKAPI vkCmdClearColorAttachment(
VkCmdBuffer cmdBuffer,
uint32_t colorAttachment,
VkImageLayout imageLayout,
- const VkClearColor* pColor,
+ const VkClearColorValue* pColor,
uint32_t rectCount,
const VkRect3D* pRects);
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 3da7d54c..fa3b36aa 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -2482,7 +2482,7 @@ VK_LAYER_EXPORT void VKAPI vkCmdFillBuffer(VkCmdBuffer cmdBuffer, VkBuffer destB
VK_LAYER_EXPORT void VKAPI vkCmdClearColorImage(
VkCmdBuffer cmdBuffer,
VkImage image, VkImageLayout imageLayout,
- const VkClearColor *pColor,
+ const VkClearColorValue *pColor,
uint32_t rangeCount, const VkImageSubresourceRange* pRanges)
{
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
@@ -2682,8 +2682,8 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateRenderPass(VkDevice device, const VkRende
memcpy((void*)localRPCI->pColorStoreOps, pCreateInfo->pColorStoreOps, localRPCI->colorAttachmentCount*sizeof(VkAttachmentStoreOp));
}
if (pCreateInfo->pColorLoadClearValues) {
- localRPCI->pColorLoadClearValues = new VkClearColor[localRPCI->colorAttachmentCount];
- memcpy((void*)localRPCI->pColorLoadClearValues, pCreateInfo->pColorLoadClearValues, localRPCI->colorAttachmentCount*sizeof(VkClearColor));
+ localRPCI->pColorLoadClearValues = new VkClearColorValue[localRPCI->colorAttachmentCount];
+ memcpy((void*)localRPCI->pColorLoadClearValues, pCreateInfo->pColorLoadClearValues, localRPCI->colorAttachmentCount*sizeof(VkClearColorValue));
}
renderPassMap[*pRenderPass] = localRPCI;
}
diff --git a/layers/image.cpp b/layers/image.cpp
index 02827951..d2c449ec 100644
--- a/layers/image.cpp
+++ b/layers/image.cpp
@@ -340,10 +340,10 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateRenderPass(VkDevice device, const VkRende
for(uint32_t i = 0; i < pCreateInfo->colorAttachmentCount; ++i)
{
- if(!vk_validate_vkclearcolor(&(pCreateInfo->pColorLoadClearValues[i])))
+ if(!vk_validate_vkclearcolorvalue(&(pCreateInfo->pColorLoadClearValues[i])))
{
std::stringstream ss;
- ss << "vkCreateRenderPass parameter, VkClearColor pCreateInfo->pColorLoadClearValues[" << i << "], is invalid";
+ ss << "vkCreateRenderPass parameter, VkClearColorValue pCreateInfo->pColorLoadClearValues[" << i << "], is invalid";
log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "IMAGE", ss.str().c_str());
}
}
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index 0411ca10..e4db2928 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -1923,7 +1923,7 @@ VK_LAYER_EXPORT void VKAPI vkCmdClearColorImage(
VkCmdBuffer cmdBuffer,
VkImage image,
VkImageLayout imageLayout,
- const VkClearColor *pColor,
+ const VkClearColorValue *pColor,
uint32_t rangeCount,
const VkImageSubresourceRange *pRanges)
{
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 643399a4..3074ab11 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -8415,7 +8415,7 @@ VK_LAYER_EXPORT void VKAPI vkCmdFillBuffer(
void PreCmdClearColorImage(
VkCmdBuffer cmdBuffer,
- const VkClearColor* pColor,
+ const VkClearColorValue* pColor,
const VkImageSubresourceRange* pRanges)
{
if(cmdBuffer == nullptr)
@@ -8481,7 +8481,7 @@ VK_LAYER_EXPORT void VKAPI vkCmdClearColorImage(
VkCmdBuffer cmdBuffer,
VkImage image,
VkImageLayout imageLayout,
- const VkClearColor* pColor,
+ const VkClearColorValue* pColor,
uint32_t rangeCount,
const VkImageSubresourceRange* pRanges)
{
diff --git a/loader/trampoline.c b/loader/trampoline.c
index ef8e4f5e..f2239ff0 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -990,7 +990,7 @@ LOADER_EXPORT void VKAPI vkCmdFillBuffer(VkCmdBuffer cmdBuffer, VkBuffer destBuf
disp->CmdFillBuffer(cmdBuffer, destBuffer, destOffset, fillSize, data);
}
-LOADER_EXPORT void VKAPI vkCmdClearColorImage(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColor* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges)
+LOADER_EXPORT void VKAPI vkCmdClearColorImage(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges)
{
const VkLayerDispatchTable *disp;
@@ -1008,7 +1008,7 @@ LOADER_EXPORT void VKAPI vkCmdClearDepthStencilImage(VkCmdBuffer cmdBuffer, VkIm
disp->CmdClearDepthStencilImage(cmdBuffer, image, imageLayout, depth, stencil, rangeCount, pRanges);
}
-LOADER_EXPORT void VKAPI vkCmdClearColorAttachment(VkCmdBuffer cmdBuffer, uint32_t colorAttachment, VkImageLayout imageLayout, const VkClearColor* pColor, uint32_t rectCount, const VkRect3D* pRects)
+LOADER_EXPORT void VKAPI vkCmdClearColorAttachment(VkCmdBuffer cmdBuffer, uint32_t colorAttachment, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rectCount, const VkRect3D* pRects)
{
const VkLayerDispatchTable *disp;
diff --git a/vulkan.py b/vulkan.py
index c8e9b8f4..ffba32c1 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -734,7 +734,7 @@ core = Extension(
[Param("VkCmdBuffer", "cmdBuffer"),
Param("VkImage", "image"),
Param("VkImageLayout", "imageLayout"),
- Param("const VkClearColor*", "pColor"),
+ Param("const VkClearColorValue*", "pColor"),
Param("uint32_t", "rangeCount"),
Param("const VkImageSubresourceRange*", "pRanges")]),
@@ -751,7 +751,7 @@ core = Extension(
[Param("VkCmdBuffer", "cmdBuffer"),
Param("uint32_t", "colorAttachment"),
Param("VkImageLayout", "imageLayout"),
- Param("const VkClearColor*", "pColor"),
+ Param("const VkClearColorValue*", "pColor"),
Param("uint32_t", "rectCount"),
Param("const VkRect3D*", "pRects")]),