Bug 14323: RasterLine and RasterDepthBias changes
diff --git a/include/vk_debug_report_lunarg.h b/include/vk_debug_report_lunarg.h
index 4e1569c..bafdc87 100644
--- a/include/vk_debug_report_lunarg.h
+++ b/include/vk_debug_report_lunarg.h
@@ -67,18 +67,19 @@
VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 18,
VK_OBJECT_TYPE_DESCRIPTOR_POOL = 19,
VK_OBJECT_TYPE_DYNAMIC_VIEWPORT_STATE = 20,
- VK_OBJECT_TYPE_DYNAMIC_RASTER_STATE = 21,
- VK_OBJECT_TYPE_DYNAMIC_COLOR_BLEND_STATE = 22,
- VK_OBJECT_TYPE_DYNAMIC_DEPTH_STENCIL_STATE = 23,
- VK_OBJECT_TYPE_FENCE = 24,
- VK_OBJECT_TYPE_SEMAPHORE = 25,
- VK_OBJECT_TYPE_EVENT = 26,
- VK_OBJECT_TYPE_QUERY_POOL = 27,
- VK_OBJECT_TYPE_FRAMEBUFFER = 28,
- VK_OBJECT_TYPE_RENDER_PASS = 29,
- VK_OBJECT_TYPE_PIPELINE_CACHE = 30,
- VK_OBJECT_TYPE_SWAP_CHAIN_WSI = 31,
- VK_OBJECT_TYPE_CMD_POOL = 32,
+ VK_OBJECT_TYPE_DYNAMIC_RASTER_LINE_STATE = 21,
+ VK_OBJECT_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE = 22,
+ VK_OBJECT_TYPE_DYNAMIC_COLOR_BLEND_STATE = 23,
+ VK_OBJECT_TYPE_DYNAMIC_DEPTH_STENCIL_STATE = 24,
+ VK_OBJECT_TYPE_FENCE = 25,
+ VK_OBJECT_TYPE_SEMAPHORE = 26,
+ VK_OBJECT_TYPE_EVENT = 27,
+ VK_OBJECT_TYPE_QUERY_POOL = 28,
+ VK_OBJECT_TYPE_FRAMEBUFFER = 29,
+ VK_OBJECT_TYPE_RENDER_PASS = 30,
+ VK_OBJECT_TYPE_PIPELINE_CACHE = 31,
+ VK_OBJECT_TYPE_SWAP_CHAIN_WSI = 32,
+ VK_OBJECT_TYPE_CMD_POOL = 33,
VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_INSTANCE,
VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_CMD_POOL,
VK_OBJECT_TYPE_NUM = (VK_OBJECT_TYPE_CMD_POOL - VK_OBJECT_TYPE_INSTANCE + 1),
@@ -113,8 +114,10 @@
return "VK_OBJECT_TYPE_DYNAMIC_COLOR_BLEND_STATE";
case VK_OBJECT_TYPE_DYNAMIC_DEPTH_STENCIL_STATE:
return "VK_OBJECT_TYPE_DYNAMIC_DEPTH_STENCIL_STATE";
- case VK_OBJECT_TYPE_DYNAMIC_RASTER_STATE:
- return "VK_OBJECT_TYPE_DYNAMIC_RASTER_STATE";
+ case VK_OBJECT_TYPE_DYNAMIC_RASTER_LINE_STATE:
+ return "VK_OBJECT_TYPE_DYNAMIC_RASTER_LINE_STATE";
+ case VK_OBJECT_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE:
+ return "VK_OBJECT_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE";
case VK_OBJECT_TYPE_DYNAMIC_VIEWPORT_STATE:
return "VK_OBJECT_TYPE_DYNAMIC_VIEPORT_STATE";
case VK_OBJECT_TYPE_EVENT:
diff --git a/include/vk_layer.h b/include/vk_layer.h
index afc103e..3c3cbad 100644
--- a/include/vk_layer.h
+++ b/include/vk_layer.h
@@ -104,8 +104,10 @@
PFN_vkUpdateDescriptorSets UpdateDescriptorSets;
PFN_vkCreateDynamicViewportState CreateDynamicViewportState;
PFN_vkDestroyDynamicViewportState DestroyDynamicViewportState;
- PFN_vkCreateDynamicRasterState CreateDynamicRasterState;
- PFN_vkDestroyDynamicRasterState DestroyDynamicRasterState;
+ PFN_vkCreateDynamicRasterLineState CreateDynamicRasterLineState;
+ PFN_vkDestroyDynamicRasterLineState DestroyDynamicRasterLineState;
+ PFN_vkCreateDynamicRasterDepthBiasState CreateDynamicRasterDepthBiasState;
+ PFN_vkDestroyDynamicRasterDepthBiasState DestroyDynamicRasterDepthBiasState;
PFN_vkCreateDynamicColorBlendState CreateDynamicColorBlendState;
PFN_vkDestroyDynamicColorBlendState DestroyDynamicColorBlendState;
PFN_vkCreateDynamicDepthStencilState CreateDynamicDepthStencilState;
@@ -125,7 +127,8 @@
PFN_vkResetCommandBuffer ResetCommandBuffer;
PFN_vkCmdBindPipeline CmdBindPipeline;
PFN_vkCmdBindDynamicViewportState CmdBindDynamicViewportState;
- PFN_vkCmdBindDynamicRasterState CmdBindDynamicRasterState;
+ PFN_vkCmdBindDynamicRasterLineState CmdBindDynamicRasterLineState;
+ PFN_vkCmdBindDynamicRasterDepthBiasState CmdBindDynamicRasterDepthBiasState;
PFN_vkCmdBindDynamicColorBlendState CmdBindDynamicColorBlendState;
PFN_vkCmdBindDynamicDepthStencilState CmdBindDynamicDepthStencilState;
PFN_vkCmdBindDescriptorSets CmdBindDescriptorSets;
diff --git a/include/vulkan.h b/include/vulkan.h
index 067546b..0a802b0 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -119,7 +119,8 @@
VK_DEFINE_NONDISP_HANDLE(VkDescriptorPool)
VK_DEFINE_NONDISP_HANDLE(VkDescriptorSet)
VK_DEFINE_NONDISP_HANDLE(VkDynamicViewportState)
-VK_DEFINE_NONDISP_HANDLE(VkDynamicRasterState)
+VK_DEFINE_NONDISP_HANDLE(VkDynamicRasterLineState)
+VK_DEFINE_NONDISP_HANDLE(VkDynamicRasterDepthBiasState)
VK_DEFINE_NONDISP_HANDLE(VkDynamicColorBlendState)
VK_DEFINE_NONDISP_HANDLE(VkDynamicDepthStencilState)
VK_DEFINE_NONDISP_HANDLE(VkFramebuffer)
@@ -199,45 +200,46 @@
VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 8,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 9,
VK_STRUCTURE_TYPE_DYNAMIC_VIEWPORT_STATE_CREATE_INFO = 10,
- VK_STRUCTURE_TYPE_DYNAMIC_RASTER_STATE_CREATE_INFO = 11,
- VK_STRUCTURE_TYPE_DYNAMIC_COLOR_BLEND_STATE_CREATE_INFO = 12,
- VK_STRUCTURE_TYPE_DYNAMIC_DEPTH_STENCIL_STATE_CREATE_INFO = 13,
- VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO = 14,
- VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 15,
- VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 16,
- VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 17,
- VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 18,
- VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 19,
- VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 20,
- VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 21,
- VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 22,
- VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 23,
- VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 24,
- VK_STRUCTURE_TYPE_PIPELINE_RASTER_STATE_CREATE_INFO = 25,
- VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 26,
- VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 27,
- VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 28,
- VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 29,
- VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 30,
- VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 31,
- VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 32,
- VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO = 33,
- VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 34,
- VK_STRUCTURE_TYPE_MEMORY_BARRIER = 35,
- VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 36,
- VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 37,
- VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 38,
- VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 39,
- VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 40,
- VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 41,
- VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 42,
- VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 43,
- VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 44,
- VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION = 45,
- VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION = 46,
- VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY = 47,
- VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 48,
- VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO = 49,
+ VK_STRUCTURE_TYPE_DYNAMIC_RASTER_LINE_STATE_CREATE_INFO = 11,
+ VK_STRUCTURE_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE_CREATE_INFO = 12,
+ VK_STRUCTURE_TYPE_DYNAMIC_COLOR_BLEND_STATE_CREATE_INFO = 13,
+ VK_STRUCTURE_TYPE_DYNAMIC_DEPTH_STENCIL_STATE_CREATE_INFO = 14,
+ VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO = 15,
+ VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 16,
+ VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 17,
+ VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 18,
+ VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 19,
+ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 20,
+ VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 21,
+ VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 22,
+ VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 23,
+ VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 24,
+ VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 25,
+ VK_STRUCTURE_TYPE_PIPELINE_RASTER_STATE_CREATE_INFO = 26,
+ VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 27,
+ VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 28,
+ VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 29,
+ VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 30,
+ VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 31,
+ VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 32,
+ VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 33,
+ VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO = 34,
+ VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 35,
+ VK_STRUCTURE_TYPE_MEMORY_BARRIER = 36,
+ VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 37,
+ VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 38,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 39,
+ VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 40,
+ VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 41,
+ VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 42,
+ VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 43,
+ VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 44,
+ VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 45,
+ VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION = 46,
+ VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION = 47,
+ VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY = 48,
+ VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 49,
+ VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO = 50,
VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO,
VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
@@ -1640,6 +1642,7 @@
VkFillMode fillMode;
VkCullMode cullMode;
VkFrontFace frontFace;
+ VkBool32 depthBiasEnable;
} VkPipelineRasterStateCreateInfo;
typedef struct {
@@ -1848,11 +1851,16 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ float lineWidth;
+} VkDynamicRasterLineStateCreateInfo;
+
+typedef struct {
+ VkStructureType sType;
+ const void* pNext;
float depthBias;
float depthBiasClamp;
float slopeScaledDepthBias;
- float lineWidth;
-} VkDynamicRasterStateCreateInfo;
+} VkDynamicRasterDepthBiasStateCreateInfo;
typedef struct {
VkStructureType sType;
@@ -2179,8 +2187,10 @@
typedef VkResult (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies);
typedef VkResult (VKAPI *PFN_vkCreateDynamicViewportState)(VkDevice device, const VkDynamicViewportStateCreateInfo* pCreateInfo, VkDynamicViewportState* pState);
typedef VkResult (VKAPI *PFN_vkDestroyDynamicViewportState)(VkDevice device, VkDynamicViewportState dynamicViewportState);
-typedef VkResult (VKAPI *PFN_vkCreateDynamicRasterState)(VkDevice device, const VkDynamicRasterStateCreateInfo* pCreateInfo, VkDynamicRasterState* pState);
-typedef VkResult (VKAPI *PFN_vkDestroyDynamicRasterState)(VkDevice device, VkDynamicRasterState dynamicRasterState);
+typedef VkResult (VKAPI *PFN_vkCreateDynamicRasterLineState)(VkDevice device, const VkDynamicRasterLineStateCreateInfo* pCreateInfo, VkDynamicRasterLineState* pState);
+typedef VkResult (VKAPI *PFN_vkDestroyDynamicRasterLineState)(VkDevice device, VkDynamicRasterLineState dynamicRasterLineState);
+typedef VkResult (VKAPI *PFN_vkCreateDynamicRasterDepthBiasState)(VkDevice device, const VkDynamicRasterDepthBiasStateCreateInfo* pCreateInfo, VkDynamicRasterDepthBiasState* pState);
+typedef VkResult (VKAPI *PFN_vkDestroyDynamicRasterDepthBiasState)(VkDevice device, VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState);
typedef VkResult (VKAPI *PFN_vkCreateDynamicColorBlendState)(VkDevice device, const VkDynamicColorBlendStateCreateInfo* pCreateInfo, VkDynamicColorBlendState* pState);
typedef VkResult (VKAPI *PFN_vkDestroyDynamicColorBlendState)(VkDevice device, VkDynamicColorBlendState dynamicColorBlendState);
typedef VkResult (VKAPI *PFN_vkCreateDynamicDepthStencilState)(VkDevice device, const VkDynamicDepthStencilStateCreateInfo* pCreateInfo, VkDynamicDepthStencilState* pState);
@@ -2200,7 +2210,8 @@
typedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCmdBuffer cmdBuffer, VkCmdBufferResetFlags flags);
typedef void (VKAPI *PFN_vkCmdBindPipeline)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
typedef void (VKAPI *PFN_vkCmdBindDynamicViewportState)(VkCmdBuffer cmdBuffer, VkDynamicViewportState dynamicViewportState);
-typedef void (VKAPI *PFN_vkCmdBindDynamicRasterState)(VkCmdBuffer cmdBuffer, VkDynamicRasterState dynamicRasterState);
+typedef void (VKAPI *PFN_vkCmdBindDynamicRasterLineState)(VkCmdBuffer cmdBuffer, VkDynamicRasterLineState dynamicRasterLineState);
+typedef void (VKAPI *PFN_vkCmdBindDynamicRasterDepthBiasState)(VkCmdBuffer cmdBuffer, VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState);
typedef void (VKAPI *PFN_vkCmdBindDynamicColorBlendState)(VkCmdBuffer cmdBuffer, VkDynamicColorBlendState dynamicColorBlendState);
typedef void (VKAPI *PFN_vkCmdBindDynamicDepthStencilState)(VkCmdBuffer cmdBuffer, VkDynamicDepthStencilState dynamicDepthStencilState);
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);
@@ -2696,14 +2707,23 @@
VkDevice device,
VkDynamicViewportState dynamicViewportState);
-VkResult VKAPI vkCreateDynamicRasterState(
- VkDevice device,
- const VkDynamicRasterStateCreateInfo* pCreateInfo,
- VkDynamicRasterState* pState);
+VkResult VKAPI vkCreateDynamicRasterLineState(
+ VkDevice device,
+ const VkDynamicRasterLineStateCreateInfo* pCreateInfo,
+ VkDynamicRasterLineState* pState);
-VkResult VKAPI vkDestroyDynamicRasterState(
+VkResult VKAPI vkDestroyDynamicRasterLineState(
+ VkDevice device,
+ VkDynamicRasterLineState dynamicRasterLineState);
+
+VkResult VKAPI vkCreateDynamicRasterDepthBiasState(
VkDevice device,
- VkDynamicRasterState dynamicRasterState);
+ const VkDynamicRasterDepthBiasStateCreateInfo* pCreateInfo,
+ VkDynamicRasterDepthBiasState* pState);
+
+VkResult VKAPI vkDestroyDynamicRasterDepthBiasState(
+ VkDevice device,
+ VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState);
VkResult VKAPI vkCreateDynamicColorBlendState(
VkDevice device,
@@ -2789,9 +2809,13 @@
VkCmdBuffer cmdBuffer,
VkDynamicViewportState dynamicViewportState);
-void VKAPI vkCmdBindDynamicRasterState(
+void VKAPI vkCmdBindDynamicRasterLineState(
VkCmdBuffer cmdBuffer,
- VkDynamicRasterState dynamicRasterState);
+ VkDynamicRasterLineState dynamicRasterLineState);
+
+void VKAPI vkCmdBindDynamicRasterDepthBiasState(
+ VkCmdBuffer cmdBuffer,
+ VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState);
void VKAPI vkCmdBindDynamicColorBlendState(
VkCmdBuffer cmdBuffer,
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index a0b867a..c465768 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -65,7 +65,8 @@
unordered_map<uint64_t, VkAttachmentViewCreateInfo> viewMap;
unordered_map<uint64_t, BUFFER_NODE*> bufferMap;
unordered_map<uint64_t, VkDynamicViewportStateCreateInfo> dynamicVpStateMap;
-unordered_map<uint64_t, VkDynamicRasterStateCreateInfo> dynamicRsStateMap;
+unordered_map<uint64_t, VkDynamicRasterLineStateCreateInfo> dynamicRasterLineStateMap;
+unordered_map<uint64_t, VkDynamicRasterDepthBiasStateCreateInfo> dynamicRasterDepthBiasStateMap;
unordered_map<uint64_t, VkDynamicColorBlendStateCreateInfo> dynamicCbStateMap;
unordered_map<uint64_t, VkDynamicDepthStencilStateCreateInfo> dynamicDsStateMap;
unordered_map<uint64_t, PIPELINE_NODE*> pipelineMap;
@@ -140,8 +141,10 @@
return "CMD_BINDPIPELINEDELTA";
case CMD_BINDDYNAMICVIEWPORTSTATE:
return "CMD_BINDDYNAMICVIEWPORTSTATE";
- case CMD_BINDDYNAMICRASTERSTATE:
- return "CMD_BINDDYNAMICRASTERSTATE";
+ case CMD_BINDDYNAMICRASTERLINESTATE:
+ return "CMD_BINDDYNAMICRASTERLINESTATE";
+ case CMD_BINDDYNAMICRASTERDEPTHBIASSTATE:
+ return "CMD_BINDDYNAMICRASTERDEPTHBIASSTATE";
case CMD_BINDDYNAMICCOLORBLENDSTATE:
return "CMD_BINDDYNAMICCOLORBLENDSTATE";
case CMD_BINDDYNAMICDEPTHSTENCILSTATE:
@@ -257,7 +260,8 @@
delete[] (*ii).second.pViewports;
}
dynamicVpStateMap.clear();
- dynamicRsStateMap.clear();
+ dynamicRasterLineStateMap.clear();
+ dynamicRasterDepthBiasStateMap.clear();
dynamicCbStateMap.clear();
dynamicDsStateMap.clear();
}
@@ -358,8 +362,10 @@
switch (type) {
case VK_STATE_BIND_POINT_VIEWPORT:
return (void*)&dynamicVpStateMap[handle];
- case VK_STATE_BIND_POINT_RASTER:
- return (void*)&dynamicRsStateMap[handle];
+ case VK_STATE_BIND_POINT_RASTER_LINE:
+ return (void*)&dynamicRasterLineStateMap[handle];
+ case VK_STATE_BIND_POINT_RASTER_DEPTH_BIAS:
+ return (void*)&dynamicRasterDepthBiasStateMap[handle];
case VK_STATE_BIND_POINT_COLOR_BLEND:
return (void*)&dynamicCbStateMap[handle];
case VK_STATE_BIND_POINT_DEPTH_STENCIL:
@@ -409,7 +415,8 @@
static VkBool32 validate_draw_state_flags(GLOBAL_CB_NODE* pCB, VkBool32 indexedDraw) {
VkBool32 result;
result = validate_status(pCB, CBSTATUS_NONE, CBSTATUS_VIEWPORT_BOUND, CBSTATUS_VIEWPORT_BOUND, VK_DBG_REPORT_ERROR_BIT, DRAWSTATE_VIEWPORT_NOT_BOUND, "Viewport object not bound to this command buffer");
- result &= validate_status(pCB, CBSTATUS_NONE, CBSTATUS_RASTER_BOUND, CBSTATUS_RASTER_BOUND, VK_DBG_REPORT_ERROR_BIT, DRAWSTATE_RASTER_NOT_BOUND, "Raster object not bound to this command buffer");
+ result &= validate_status(pCB, CBSTATUS_NONE, CBSTATUS_RASTER_LINE_BOUND, CBSTATUS_RASTER_LINE_BOUND, VK_DBG_REPORT_ERROR_BIT, DRAWSTATE_RASTER_LINE_NOT_BOUND, "Raster line object not bound to this command buffer");
+ result &= validate_status(pCB, CBSTATUS_NONE, CBSTATUS_RASTER_DEPTH_BIAS_BOUND, CBSTATUS_RASTER_DEPTH_BIAS_BOUND, VK_DBG_REPORT_ERROR_BIT, DRAWSTATE_RASTER_DEPTH_BIAS_NOT_BOUND, "Raster depth bias object not bound to this command buffer");
result &= validate_status(pCB, CBSTATUS_COLOR_BLEND_WRITE_ENABLE, CBSTATUS_COLOR_BLEND_BOUND, CBSTATUS_COLOR_BLEND_BOUND, VK_DBG_REPORT_ERROR_BIT, DRAWSTATE_COLOR_BLEND_NOT_BOUND, "Color-blend object not bound to this command buffer");
result &= validate_status(pCB, CBSTATUS_DEPTH_STENCIL_WRITE_ENABLE, CBSTATUS_DEPTH_STENCIL_BOUND, CBSTATUS_DEPTH_STENCIL_BOUND, VK_DBG_REPORT_ERROR_BIT, DRAWSTATE_DEPTH_STENCIL_NOT_BOUND, "Depth-stencil object not bound to this command buffer");
if (indexedDraw)
@@ -1135,8 +1142,10 @@
static void set_cb_dyn_status(GLOBAL_CB_NODE* pNode, DYNAMIC_STATE_BIND_POINT stateBindPoint) {
if (stateBindPoint == VK_STATE_BIND_POINT_VIEWPORT) {
pNode->status |= CBSTATUS_VIEWPORT_BOUND;
- } else if (stateBindPoint == VK_STATE_BIND_POINT_RASTER) {
- pNode->status |= CBSTATUS_RASTER_BOUND;
+ } else if (stateBindPoint == VK_STATE_BIND_POINT_RASTER_LINE) {
+ pNode->status |= CBSTATUS_RASTER_LINE_BOUND;
+ } else if (stateBindPoint == VK_STATE_BIND_POINT_RASTER_DEPTH_BIAS) {
+ pNode->status |= CBSTATUS_RASTER_DEPTH_BIAS_BOUND;
} else if (stateBindPoint == VK_STATE_BIND_POINT_COLOR_BLEND) {
pNode->status |= CBSTATUS_COLOR_BLEND_BOUND;
} else if (stateBindPoint == VK_STATE_BIND_POINT_DEPTH_STENCIL) {
@@ -1605,9 +1614,16 @@
return result;
}
-VK_LAYER_EXPORT VkResult VKAPI vkDestroyDynamicRasterState(VkDevice device, VkDynamicRasterState dynamicRasterState)
+VK_LAYER_EXPORT VkResult VKAPI vkDestroyDynamicRasterLineState(VkDevice device, VkDynamicRasterLineState dynamicRasterLineState)
{
- VkResult result = get_dispatch_table(draw_state_device_table_map, device)->DestroyDynamicRasterState(device, dynamicRasterState);
+ VkResult result = get_dispatch_table(draw_state_device_table_map, device)->DestroyDynamicRasterLineState(device, dynamicRasterLineState);
+ // TODO : Clean up any internal data structures using this obj.
+ return result;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkDestroyDynamicRasterDepthBiasState(VkDevice device, VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState)
+{
+ VkResult result = get_dispatch_table(draw_state_device_table_map, device)->DestroyDynamicRasterDepthBiasState(device, dynamicRasterDepthBiasState);
// TODO : Clean up any internal data structures using this obj.
return result;
}
@@ -1951,12 +1967,22 @@
return result;
}
-VK_LAYER_EXPORT VkResult VKAPI vkCreateDynamicRasterState(VkDevice device, const VkDynamicRasterStateCreateInfo* pCreateInfo, VkDynamicRasterState* pState)
+VK_LAYER_EXPORT VkResult VKAPI vkCreateDynamicRasterLineState(VkDevice device, const VkDynamicRasterLineStateCreateInfo* pCreateInfo, VkDynamicRasterLineState* pState)
{
- VkResult result = get_dispatch_table(draw_state_device_table_map, device)->CreateDynamicRasterState(device, pCreateInfo, pState);
- //insertDynamicState(*pState, (GENERIC_HEADER*)pCreateInfo, VK_STATE_BIND_POINT_RASTER);
+ VkResult result = get_dispatch_table(draw_state_device_table_map, device)->CreateDynamicRasterLineState(device, pCreateInfo, pState);
+ //insertDynamicState(*pState, (GENERIC_HEADER*)pCreateInfo, VK_STATE_BIND_POINT_RASTER_LINE);
loader_platform_thread_lock_mutex(&globalLock);
- dynamicRsStateMap[pState->handle] = *pCreateInfo;
+ dynamicRasterLineStateMap[pState->handle] = *pCreateInfo;
+ loader_platform_thread_unlock_mutex(&globalLock);
+ return result;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkCreateDynamicRasterDepthBiasState(VkDevice device, const VkDynamicRasterDepthBiasStateCreateInfo* pCreateInfo, VkDynamicRasterDepthBiasState* pState)
+{
+ VkResult result = get_dispatch_table(draw_state_device_table_map, device)->CreateDynamicRasterDepthBiasState(device, pCreateInfo, pState);
+ //insertDynamicState(*pState, (GENERIC_HEADER*)pCreateInfo, VK_STATE_BIND_POINT_RASTER_DEPTH_BIAS);
+ loader_platform_thread_lock_mutex(&globalLock);
+ dynamicRasterDepthBiasStateMap[pState->handle] = *pCreateInfo;
loader_platform_thread_unlock_mutex(&globalLock);
return result;
}
@@ -2125,30 +2151,57 @@
}
}
}
-VK_LAYER_EXPORT void VKAPI vkCmdBindDynamicRasterState(VkCmdBuffer cmdBuffer, VkDynamicRasterState dynamicRasterState)
+VK_LAYER_EXPORT void VKAPI vkCmdBindDynamicRasterLineState(VkCmdBuffer cmdBuffer, VkDynamicRasterLineState dynamicRasterLineState)
{
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
if (pCB->state == CB_UPDATE_ACTIVE) {
updateCBTracking(cmdBuffer);
- addCmd(pCB, CMD_BINDDYNAMICRASTERSTATE);
+ addCmd(pCB, CMD_BINDDYNAMICRASTERLINESTATE);
if (!pCB->activeRenderPass) {
log_msg(mdd(pCB->cmdBuffer), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType) 0, 0, 0, DRAWSTATE_NO_ACTIVE_RENDERPASS, "DS",
- "Incorrect call to vkCmdBindDynamicRasterState() without an active RenderPass.");
+ "Incorrect call to vkCmdBindDynamicRasterLineState() without an active RenderPass.");
}
loader_platform_thread_lock_mutex(&globalLock);
- pCB->status |= CBSTATUS_RASTER_BOUND;
- if (dynamicRsStateMap.find(dynamicRasterState.handle) == dynamicRsStateMap.end()) {
- log_msg(mdd(cmdBuffer), VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_DYNAMIC_RASTER_STATE, dynamicRasterState.handle, 0, DRAWSTATE_INVALID_DYNAMIC_STATE_OBJECT, "DS",
- "Unable to find VkDynamicRasterState object %#" PRIxLEAST64 ", was it ever created?", dynamicRasterState.handle);
+ pCB->status |= CBSTATUS_RASTER_LINE_BOUND;
+ if (dynamicRasterLineStateMap.find(dynamicRasterLineState.handle) == dynamicRasterLineStateMap.end()) {
+ log_msg(mdd(cmdBuffer), VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_DYNAMIC_RASTER_LINE_STATE, dynamicRasterLineState.handle, 0, DRAWSTATE_INVALID_DYNAMIC_STATE_OBJECT, "DS",
+ "Unable to find VkDynamicRasterLineState object %#" PRIxLEAST64 ", was it ever created?", dynamicRasterLineState.handle);
} else {
- pCB->lastBoundDynamicState[VK_STATE_BIND_POINT_RASTER] = dynamicRasterState.handle;
- g_lastBoundDynamicState[VK_STATE_BIND_POINT_RASTER] = dynamicRasterState.handle;
+ pCB->lastBoundDynamicState[VK_STATE_BIND_POINT_RASTER_LINE] = dynamicRasterLineState.handle;
+ g_lastBoundDynamicState[VK_STATE_BIND_POINT_RASTER_LINE] = dynamicRasterLineState.handle;
}
loader_platform_thread_unlock_mutex(&globalLock);
- get_dispatch_table(draw_state_device_table_map, cmdBuffer)->CmdBindDynamicRasterState(cmdBuffer, dynamicRasterState);
+ get_dispatch_table(draw_state_device_table_map, cmdBuffer)->CmdBindDynamicRasterLineState(cmdBuffer, dynamicRasterLineState);
} else {
- report_error_no_cb_begin(cmdBuffer, "vkCmdBindDynamicRasterState()");
+ report_error_no_cb_begin(cmdBuffer, "vkCmdBindDynamicRasterLineState()");
+ }
+ }
+}
+VK_LAYER_EXPORT void VKAPI vkCmdBindDynamicRasterDepthBiasState(VkCmdBuffer cmdBuffer, VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState)
+{
+ GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
+ if (pCB) {
+ if (pCB->state == CB_UPDATE_ACTIVE) {
+ updateCBTracking(cmdBuffer);
+ addCmd(pCB, CMD_BINDDYNAMICRASTERDEPTHBIASSTATE);
+ if (!pCB->activeRenderPass) {
+ log_msg(mdd(pCB->cmdBuffer), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType) 0, 0, 0, DRAWSTATE_NO_ACTIVE_RENDERPASS, "DS",
+ "Incorrect call to vkCmdBindDynamicRasterDepthBiasState() without an active RenderPass.");
+ }
+ loader_platform_thread_lock_mutex(&globalLock);
+ pCB->status |= CBSTATUS_RASTER_DEPTH_BIAS_BOUND;
+ if (dynamicRasterDepthBiasStateMap.find(dynamicRasterDepthBiasState.handle) == dynamicRasterDepthBiasStateMap.end()) {
+ log_msg(mdd(cmdBuffer), VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE, dynamicRasterDepthBiasState.handle, 0, DRAWSTATE_INVALID_DYNAMIC_STATE_OBJECT, "DS",
+ "Unable to find VkDynamicRasterDepthBiasState object %#" PRIxLEAST64 ", was it ever created?", dynamicRasterDepthBiasState.handle);
+ } else {
+ pCB->lastBoundDynamicState[VK_STATE_BIND_POINT_RASTER_DEPTH_BIAS] = dynamicRasterDepthBiasState.handle;
+ g_lastBoundDynamicState[VK_STATE_BIND_POINT_RASTER_DEPTH_BIAS] = dynamicRasterDepthBiasState.handle;
+ }
+ loader_platform_thread_unlock_mutex(&globalLock);
+ get_dispatch_table(draw_state_device_table_map, cmdBuffer)->CmdBindDynamicRasterDepthBiasState(cmdBuffer, dynamicRasterDepthBiasState);
+ } else {
+ report_error_no_cb_begin(cmdBuffer, "vkCmdBindDynamicRasterDepthBiasState()");
}
}
}
@@ -3061,8 +3114,10 @@
return (PFN_vkVoidFunction) vkDestroyDescriptorPool;
if (!strcmp(funcName, "vkDestroyDynamicViewportState"))
return (PFN_vkVoidFunction) vkDestroyDynamicViewportState;
- if (!strcmp(funcName, "vkDestroyDynamicRasterState"))
- return (PFN_vkVoidFunction) vkDestroyDynamicRasterState;
+ if (!strcmp(funcName, "vkDestroyDynamicRasterLineState"))
+ return (PFN_vkVoidFunction) vkDestroyDynamicRasterLineState;
+ if (!strcmp(funcName, "vkDestroyDynamicRasterDepthBiasState"))
+ return (PFN_vkVoidFunction) vkDestroyDynamicRasterDepthBiasState;
if (!strcmp(funcName, "vkDestroyDynamicColorBlendState"))
return (PFN_vkVoidFunction) vkDestroyDynamicColorBlendState;
if (!strcmp(funcName, "vkDestroyDynamicDepthStencilState"))
@@ -3107,8 +3162,10 @@
return (PFN_vkVoidFunction) vkUpdateDescriptorSets;
if (!strcmp(funcName, "vkCreateDynamicViewportState"))
return (PFN_vkVoidFunction) vkCreateDynamicViewportState;
- if (!strcmp(funcName, "vkCreateDynamicRasterState"))
- return (PFN_vkVoidFunction) vkCreateDynamicRasterState;
+ if (!strcmp(funcName, "vkCreateDynamicRasterLineState"))
+ return (PFN_vkVoidFunction) vkCreateDynamicRasterLineState;
+ if (!strcmp(funcName, "vkCreateDynamicRasterDepthBiasState"))
+ return (PFN_vkVoidFunction) vkCreateDynamicRasterDepthBiasState;
if (!strcmp(funcName, "vkCreateDynamicColorBlendState"))
return (PFN_vkVoidFunction) vkCreateDynamicColorBlendState;
if (!strcmp(funcName, "vkCreateDynamicDepthStencilState"))
@@ -3125,8 +3182,10 @@
return (PFN_vkVoidFunction) vkCmdBindPipeline;
if (!strcmp(funcName, "vkCmdBindDynamicViewportState"))
return (PFN_vkVoidFunction) vkCmdBindDynamicViewportState;
- if (!strcmp(funcName, "vkCmdBindDynamicRasterState"))
- return (PFN_vkVoidFunction) vkCmdBindDynamicRasterState;
+ if (!strcmp(funcName, "vkCmdBindDynamicRasterLineState"))
+ return (PFN_vkVoidFunction) vkCmdBindDynamicRasterLineState;
+ if (!strcmp(funcName, "vkCmdBindDynamicRasterDepthBiasState"))
+ return (PFN_vkVoidFunction) vkCmdBindDynamicRasterDepthBiasState;
if (!strcmp(funcName, "vkCmdBindDynamicColorBlendState"))
return (PFN_vkVoidFunction) vkCmdBindDynamicColorBlendState;
if (!strcmp(funcName, "vkCmdBindDynamicDepthStencilState"))
diff --git a/layers/draw_state.h b/layers/draw_state.h
index ebc60f7..4c7c355 100644
--- a/layers/draw_state.h
+++ b/layers/draw_state.h
@@ -52,7 +52,8 @@
DRAWSTATE_NO_BEGIN_CMD_BUFFER, // Binding cmds or calling End on CB that never had vkBeginCommandBuffer() called on it
DRAWSTATE_CMD_BUFFER_SINGLE_SUBMIT_VIOLATION, // Cmd Buffer created with VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT flag is submitted multiple times
DRAWSTATE_VIEWPORT_NOT_BOUND, // Draw submitted with no viewport state object bound
- DRAWSTATE_RASTER_NOT_BOUND, // Draw submitted with no raster state object bound
+ DRAWSTATE_RASTER_LINE_NOT_BOUND, // Draw submitted with no raster line state object bound
+ DRAWSTATE_RASTER_DEPTH_BIAS_NOT_BOUND, // Draw submitted with no raster depth bias state object bound
DRAWSTATE_COLOR_BLEND_NOT_BOUND, // Draw submitted with no color blend state object bound when color write enabled
DRAWSTATE_DEPTH_STENCIL_NOT_BOUND, // Draw submitted with no depth-stencil state object bound when depth write enabled
DRAWSTATE_INDEX_BUFFER_NOT_BOUND, // Draw submitted with no depth-stencil state object bound when depth write enabled
@@ -164,7 +165,8 @@
CMD_BINDPIPELINE,
CMD_BINDPIPELINEDELTA,
CMD_BINDDYNAMICVIEWPORTSTATE,
- CMD_BINDDYNAMICRASTERSTATE,
+ CMD_BINDDYNAMICRASTERLINESTATE,
+ CMD_BINDDYNAMICRASTERDEPTHBIASSTATE,
CMD_BINDDYNAMICCOLORBLENDSTATE,
CMD_BINDDYNAMICDEPTHSTENCILSTATE,
CMD_BINDDESCRIPTORSETS,
@@ -225,12 +227,13 @@
{
CBSTATUS_NONE = 0x00000000, // No status is set
CBSTATUS_VIEWPORT_BOUND = 0x00000001, // Viewport state object has been bound
- CBSTATUS_RASTER_BOUND = 0x00000002, // Raster state object has been bound
- CBSTATUS_COLOR_BLEND_WRITE_ENABLE = 0x00000004, // PSO w/ CB Enable set has been bound
- CBSTATUS_COLOR_BLEND_BOUND = 0x00000008, // CB state object has been bound
- CBSTATUS_DEPTH_STENCIL_WRITE_ENABLE = 0x00000010, // PSO w/ DS Enable set has been bound
- CBSTATUS_DEPTH_STENCIL_BOUND = 0x00000020, // DS state object has been bound
- CBSTATUS_INDEX_BUFFER_BOUND = 0x00000040, // Index buffer has been bound
+ CBSTATUS_RASTER_LINE_BOUND = 0x00000002, // Raster state object has been bound
+ CBSTATUS_RASTER_DEPTH_BIAS_BOUND = 0x00000004, // Raster state object has been bound
+ CBSTATUS_COLOR_BLEND_WRITE_ENABLE = 0x00000008, // PSO w/ CB Enable set has been bound
+ CBSTATUS_COLOR_BLEND_BOUND = 0x00000010, // CB state object has been bound
+ CBSTATUS_DEPTH_STENCIL_WRITE_ENABLE = 0x00000020, // PSO w/ DS Enable set has been bound
+ CBSTATUS_DEPTH_STENCIL_BOUND = 0x00000040, // DS state object has been bound
+ CBSTATUS_INDEX_BUFFER_BOUND = 0x00000080, // Index buffer has been bound
} CBStatusFlagBits;
// Cmd Buffer Wrapper Struct
diff --git a/layers/layer_common.h b/layers/layer_common.h
index 5bfb4f7..4cb2ae1 100644
--- a/layers/layer_common.h
+++ b/layers/layer_common.h
@@ -26,7 +26,8 @@
typedef enum _DYNAMIC_STATE_BIND_POINT
{
VK_STATE_BIND_POINT_VIEWPORT,
- VK_STATE_BIND_POINT_RASTER,
+ VK_STATE_BIND_POINT_RASTER_LINE,
+ VK_STATE_BIND_POINT_RASTER_DEPTH_BIAS,
VK_STATE_BIND_POINT_COLOR_BLEND,
VK_STATE_BIND_POINT_DEPTH_STENCIL,
VK_NUM_STATE_BIND_POINT // Used for array sizing
@@ -38,8 +39,10 @@
{
case VK_STATE_BIND_POINT_VIEWPORT:
return "VIEWPORT";
- case VK_STATE_BIND_POINT_RASTER:
- return "RASTER";
+ case VK_STATE_BIND_POINT_RASTER_LINE:
+ return "RASTER_LINE";
+ case VK_STATE_BIND_POINT_RASTER_DEPTH_BIAS:
+ return "RASTER_DEPTH_BIAS";
case VK_STATE_BIND_POINT_COLOR_BLEND:
return "COLOR_BLEND";
case VK_STATE_BIND_POINT_DEPTH_STENCIL:
@@ -55,8 +58,10 @@
{
case VK_STATE_BIND_POINT_VIEWPORT:
return VK_OBJECT_TYPE_DYNAMIC_VIEWPORT_STATE;
- case VK_STATE_BIND_POINT_RASTER:
- return VK_OBJECT_TYPE_DYNAMIC_RASTER_STATE;
+ case VK_STATE_BIND_POINT_RASTER_LINE:
+ return VK_OBJECT_TYPE_DYNAMIC_RASTER_LINE_STATE;
+ case VK_STATE_BIND_POINT_RASTER_DEPTH_BIAS:
+ return VK_OBJECT_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE;
case VK_STATE_BIND_POINT_COLOR_BLEND:
return VK_OBJECT_TYPE_DYNAMIC_COLOR_BLEND_STATE;
case VK_STATE_BIND_POINT_DEPTH_STENCIL:
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index 510af12..846cc5b 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -95,7 +95,8 @@
unordered_map<uint64_t, VkFramebufferCreateInfo> framebufferMap;
//unordered_map<uint64_t, VkDescriptorSetCreateInfo> descriptorSetMap;
unordered_map<uint64_t, VkDynamicViewportStateCreateInfo> dynamicViewportStateMap;
-unordered_map<uint64_t, VkDynamicRasterStateCreateInfo> dynamicRasterStateMap;
+unordered_map<uint64_t, VkDynamicRasterLineStateCreateInfo> dynamicRasterLineStateMap;
+unordered_map<uint64_t, VkDynamicRasterDepthBiasStateCreateInfo> dynamicRasterDepthBiasStateMap;
unordered_map<uint64_t, VkDynamicColorBlendStateCreateInfo> dynamicColorBlendStateMap;
unordered_map<uint64_t, VkDynamicDepthStencilStateCreateInfo> dynamicDepthStencilStateMap;
@@ -224,10 +225,17 @@
return (void*)&(*it).second;
break;
}
- case VK_OBJECT_TYPE_DYNAMIC_RASTER_STATE:
+ case VK_OBJECT_TYPE_DYNAMIC_RASTER_LINE_STATE:
{
- auto it = dynamicRasterStateMap.find(handle);
- if (it != dynamicRasterStateMap.end())
+ auto it = dynamicRasterLineStateMap.find(handle);
+ if (it != dynamicRasterLineStateMap.end())
+ return (void*)&(*it).second;
+ break;
+ }
+ case VK_OBJECT_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE:
+ {
+ auto it = dynamicRasterDepthBiasStateMap.find(handle);
+ if (it != dynamicRasterDepthBiasStateMap.end())
return (void*)&(*it).second;
break;
}
@@ -511,10 +519,16 @@
memcpy(pCI, pCreateInfo, sizeof(VkDynamicViewportStateCreateInfo));
break;
}
- case VK_OBJECT_TYPE_DYNAMIC_RASTER_STATE:
+ case VK_OBJECT_TYPE_DYNAMIC_RASTER_LINE_STATE:
{
- auto pCI = &dynamicRasterStateMap[handle];
- memcpy(pCI, pCreateInfo, sizeof(VkDynamicRasterStateCreateInfo));
+ auto pCI = &dynamicRasterLineStateMap[handle];
+ memcpy(pCI, pCreateInfo, sizeof(VkDynamicRasterLineStateCreateInfo));
+ break;
+ }
+ case VK_OBJECT_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE:
+ {
+ auto pCI = &dynamicRasterDepthBiasStateMap[handle];
+ memcpy(pCI, pCreateInfo, sizeof(VkDynamicRasterDepthBiasStateCreateInfo));
break;
}
case VK_OBJECT_TYPE_DYNAMIC_COLOR_BLEND_STATE:
@@ -1136,7 +1150,8 @@
print_object_map_members(dispObj, renderPassMap, VK_OBJECT_TYPE_RENDER_PASS, "RenderPass");
print_object_map_members(dispObj, framebufferMap, VK_OBJECT_TYPE_FRAMEBUFFER, "Framebuffer");
print_object_map_members(dispObj, dynamicViewportStateMap, VK_OBJECT_TYPE_DYNAMIC_VIEWPORT_STATE, "DynamicViewportState");
- print_object_map_members(dispObj, dynamicRasterStateMap, VK_OBJECT_TYPE_DYNAMIC_RASTER_STATE, "DynamicRasterState");
+ print_object_map_members(dispObj, dynamicRasterLineStateMap, VK_OBJECT_TYPE_DYNAMIC_RASTER_LINE_STATE, "DynamicRasterLineState");
+ print_object_map_members(dispObj, dynamicRasterDepthBiasStateMap, VK_OBJECT_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE, "DynamicRasterDepthBiasState");
print_object_map_members(dispObj, dynamicColorBlendStateMap, VK_OBJECT_TYPE_DYNAMIC_COLOR_BLEND_STATE, "DynamicColorBlendState");
print_object_map_members(dispObj, dynamicDepthStencilStateMap, VK_OBJECT_TYPE_DYNAMIC_DEPTH_STENCIL_STATE, "DynamicDepthStencilState");
log_msg(mdd(dispObj), VK_DBG_REPORT_INFO_BIT, VK_OBJECT_TYPE_DEVICE, 0, 0, MEMTRACK_NONE, "MEM", "*** End of Object lists ***");
@@ -1822,15 +1837,27 @@
return result;
}
-VK_LAYER_EXPORT VkResult VKAPI vkDestroyDynamicRasterState(VkDevice device, VkDynamicRasterState dynamicRasterState)
+VK_LAYER_EXPORT VkResult VKAPI vkDestroyDynamicRasterLineState(VkDevice device, VkDynamicRasterLineState dynamicRasterLineState)
{
loader_platform_thread_lock_mutex(&globalLock);
- auto item = dynamicRasterStateMap.find(dynamicRasterState.handle);
- if (item != dynamicRasterStateMap.end()) {
- dynamicRasterStateMap.erase(item);
+ auto item = dynamicRasterLineStateMap.find(dynamicRasterLineState.handle);
+ if (item != dynamicRasterLineStateMap.end()) {
+ dynamicRasterLineStateMap.erase(item);
}
loader_platform_thread_unlock_mutex(&globalLock);
- VkResult result = get_dispatch_table(mem_tracker_device_table_map, device)->DestroyDynamicRasterState(device, dynamicRasterState);
+ VkResult result = get_dispatch_table(mem_tracker_device_table_map, device)->DestroyDynamicRasterLineState(device, dynamicRasterLineState);
+ return result;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkDestroyDynamicRasterDepthBiasState(VkDevice device, VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState)
+{
+ loader_platform_thread_lock_mutex(&globalLock);
+ auto item = dynamicRasterDepthBiasStateMap.find(dynamicRasterDepthBiasState.handle);
+ if (item != dynamicRasterDepthBiasStateMap.end()) {
+ dynamicRasterDepthBiasStateMap.erase(item);
+ }
+ loader_platform_thread_unlock_mutex(&globalLock);
+ VkResult result = get_dispatch_table(mem_tracker_device_table_map, device)->DestroyDynamicRasterDepthBiasState(device, dynamicRasterDepthBiasState);
return result;
}
@@ -2284,15 +2311,29 @@
return result;
}
-VK_LAYER_EXPORT VkResult VKAPI vkCreateDynamicRasterState(
+VK_LAYER_EXPORT VkResult VKAPI vkCreateDynamicRasterLineState(
VkDevice device,
- const VkDynamicRasterStateCreateInfo *pCreateInfo,
- VkDynamicRasterState *pState)
+ const VkDynamicRasterLineStateCreateInfo *pCreateInfo,
+ VkDynamicRasterLineState *pState)
{
- VkResult result = get_dispatch_table(mem_tracker_device_table_map, device)->CreateDynamicRasterState(device, pCreateInfo, pState);
+ VkResult result = get_dispatch_table(mem_tracker_device_table_map, device)->CreateDynamicRasterLineState(device, pCreateInfo, pState);
if (result == VK_SUCCESS) {
loader_platform_thread_lock_mutex(&globalLock);
- add_object_create_info(pState->handle, VK_OBJECT_TYPE_DYNAMIC_RASTER_STATE, pCreateInfo);
+ add_object_create_info(pState->handle, VK_OBJECT_TYPE_DYNAMIC_RASTER_LINE_STATE, pCreateInfo);
+ loader_platform_thread_unlock_mutex(&globalLock);
+ }
+ return result;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkCreateDynamicRasterDepthBiasState(
+ VkDevice device,
+ const VkDynamicRasterDepthBiasStateCreateInfo *pCreateInfo,
+ VkDynamicRasterDepthBiasState *pState)
+{
+ VkResult result = get_dispatch_table(mem_tracker_device_table_map, device)->CreateDynamicRasterDepthBiasState(device, pCreateInfo, pState);
+ if (result == VK_SUCCESS) {
+ loader_platform_thread_lock_mutex(&globalLock);
+ add_object_create_info(pState->handle, VK_OBJECT_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE, pCreateInfo);
loader_platform_thread_unlock_mutex(&globalLock);
}
return result;
@@ -2435,11 +2476,11 @@
get_dispatch_table(mem_tracker_device_table_map, cmdBuffer)->CmdBindDynamicViewportState(cmdBuffer, dynamicViewportState);
}
-void VKAPI vkCmdBindDynamicRasterState(
+void VKAPI vkCmdBindDynamicRasterLineState(
VkCmdBuffer cmdBuffer,
- VkDynamicRasterState dynamicRasterState)
+ VkDynamicRasterLineState dynamicRasterLineState)
{
- VkDynamicRasterStateCreateInfo* pCI;
+ VkDynamicRasterLineStateCreateInfo* pCI;
loader_platform_thread_lock_mutex(&globalLock);
MT_CB_INFO *pCmdBuf = get_cmd_buf_info(cmdBuffer);
if (!pCmdBuf) {
@@ -2447,14 +2488,36 @@
log_msg(mdd(cmdBuffer), VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_COMMAND_BUFFER, 0, 0, MEMTRACK_INVALID_CB, "MEM",
"Unable to find command buffer object %p, was it ever created?", (void*)cmdBuffer);
}
- pCI = (VkDynamicRasterStateCreateInfo*)get_object_create_info(dynamicRasterState.handle, VK_OBJECT_TYPE_DYNAMIC_RASTER_STATE);
+ pCI = (VkDynamicRasterLineStateCreateInfo*)get_object_create_info(dynamicRasterLineState.handle, VK_OBJECT_TYPE_DYNAMIC_RASTER_LINE_STATE);
if (!pCI) {
- log_msg(mdd(cmdBuffer), VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_DYNAMIC_RASTER_STATE, dynamicRasterState.handle, 0, MEMTRACK_INVALID_OBJECT, "MEM",
- "Unable to find dynamic raster state object %#" PRIxLEAST64 ", was it ever created?", dynamicRasterState.handle);
+ log_msg(mdd(cmdBuffer), VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_DYNAMIC_RASTER_LINE_STATE, dynamicRasterLineState.handle, 0, MEMTRACK_INVALID_OBJECT, "MEM",
+ "Unable to find dynamic raster state object %#" PRIxLEAST64 ", was it ever created?", dynamicRasterLineState.handle);
}
- pCmdBuf->pLastBoundDynamicState[VK_STATE_BIND_POINT_RASTER] = dynamicRasterState.handle;
+ pCmdBuf->pLastBoundDynamicState[VK_STATE_BIND_POINT_RASTER_LINE] = dynamicRasterLineState.handle;
loader_platform_thread_unlock_mutex(&globalLock);
- get_dispatch_table(mem_tracker_device_table_map, cmdBuffer)->CmdBindDynamicRasterState(cmdBuffer, dynamicRasterState);
+ get_dispatch_table(mem_tracker_device_table_map, cmdBuffer)->CmdBindDynamicRasterLineState(cmdBuffer, dynamicRasterLineState);
+}
+
+void VKAPI vkCmdBindDynamicRasterDepthBiasState(
+ VkCmdBuffer cmdBuffer,
+ VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState)
+{
+ VkDynamicRasterDepthBiasStateCreateInfo* pCI;
+ loader_platform_thread_lock_mutex(&globalLock);
+ MT_CB_INFO *pCmdBuf = get_cmd_buf_info(cmdBuffer);
+ if (!pCmdBuf) {
+ // TODO : Want cmdBuffer to be srcObj here
+ log_msg(mdd(cmdBuffer), VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_COMMAND_BUFFER, 0, 0, MEMTRACK_INVALID_CB, "MEM",
+ "Unable to find command buffer object %p, was it ever created?", (void*)cmdBuffer);
+ }
+ pCI = (VkDynamicRasterDepthBiasStateCreateInfo*)get_object_create_info(dynamicRasterDepthBiasState.handle, VK_OBJECT_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE);
+ if (!pCI) {
+ log_msg(mdd(cmdBuffer), VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE, dynamicRasterDepthBiasState.handle, 0, MEMTRACK_INVALID_OBJECT, "MEM",
+ "Unable to find dynamic raster state object %#" PRIxLEAST64 ", was it ever created?", dynamicRasterDepthBiasState.handle);
+ }
+ pCmdBuf->pLastBoundDynamicState[VK_STATE_BIND_POINT_RASTER_DEPTH_BIAS] = dynamicRasterDepthBiasState.handle;
+ loader_platform_thread_unlock_mutex(&globalLock);
+ get_dispatch_table(mem_tracker_device_table_map, cmdBuffer)->CmdBindDynamicRasterDepthBiasState(cmdBuffer, dynamicRasterDepthBiasState);
}
void VKAPI vkCmdBindDynamicColorBlendState(
@@ -3068,8 +3131,10 @@
return (PFN_vkVoidFunction) vkDestroyFramebuffer;
if (!strcmp(funcName, "vkDestroyDynamicViewportState"))
return (PFN_vkVoidFunction) vkDestroyDynamicViewportState;
- if (!strcmp(funcName, "vkDestroyDynamicRasterState"))
- return (PFN_vkVoidFunction) vkDestroyDynamicRasterState;
+ if (!strcmp(funcName, "vkDestroyDynamicRasterLineState"))
+ return (PFN_vkVoidFunction) vkDestroyDynamicRasterLineState;
+ if (!strcmp(funcName, "vkDestroyDynamicRasterDepthBiasState"))
+ return (PFN_vkVoidFunction) vkDestroyDynamicRasterDepthBiasState;
if (!strcmp(funcName, "vkDestroyDynamicColorBlendState"))
return (PFN_vkVoidFunction) vkDestroyDynamicColorBlendState;
if (!strcmp(funcName, "vkDestroyDynamicDepthStencilState"))
@@ -3124,8 +3189,10 @@
return (PFN_vkVoidFunction) vkCreateSampler;
if (!strcmp(funcName, "vkCreateDynamicViewportState"))
return (PFN_vkVoidFunction) vkCreateDynamicViewportState;
- if (!strcmp(funcName, "vkCreateDynamicRasterState"))
- return (PFN_vkVoidFunction) vkCreateDynamicRasterState;
+ if (!strcmp(funcName, "vkCreateDynamicRasterLineState"))
+ return (PFN_vkVoidFunction) vkCreateDynamicRasterLineState;
+ if (!strcmp(funcName, "vkCreateDynamicRasterDepthBiasState"))
+ return (PFN_vkVoidFunction) vkCreateDynamicRasterDepthBiasState;
if (!strcmp(funcName, "vkCreateDynamicColorBlendState"))
return (PFN_vkVoidFunction) vkCreateDynamicColorBlendState;
if (!strcmp(funcName, "vkCreateDynamicDepthStencilState"))
@@ -3142,8 +3209,10 @@
return (PFN_vkVoidFunction) vkCmdBindPipeline;
if (!strcmp(funcName, "vkCmdBindDynamicViewportState"))
return (PFN_vkVoidFunction) vkCmdBindDynamicViewportState;
- if (!strcmp(funcName, "vkCmdBindDynamicRasterState"))
- return (PFN_vkVoidFunction) vkCmdBindDynamicRasterState;
+ if (!strcmp(funcName, "vkCmdBindDynamicRasterLineState"))
+ return (PFN_vkVoidFunction) vkCmdBindDynamicRasterLineState;
+ if (!strcmp(funcName, "vkCmdBindDynamicRasterDepthBiasState"))
+ return (PFN_vkVoidFunction) vkCmdBindDynamicRasterDepthBiasState;
if (!strcmp(funcName, "vkCmdBindDynamicColorBlendState"))
return (PFN_vkVoidFunction) vkCmdBindDynamicColorBlendState;
if (!strcmp(funcName, "vkCmdBindDynamicDepthStencilState"))
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index e769f13..27f5524 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -5843,16 +5843,16 @@
return result;
}
-bool PreCreateDynamicRasterState(
+bool PreCreateDynamicRasterLineState(
VkDevice device,
- const VkDynamicRasterStateCreateInfo* pCreateInfo)
+ const VkDynamicRasterLineStateCreateInfo* pCreateInfo)
{
if(pCreateInfo != nullptr)
{
- if(pCreateInfo->sType != VK_STRUCTURE_TYPE_DYNAMIC_RASTER_STATE_CREATE_INFO)
+ if(pCreateInfo->sType != VK_STRUCTURE_TYPE_DYNAMIC_RASTER_LINE_STATE_CREATE_INFO)
{
log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK",
- "vkCreateDynamicRasterState parameter, VkStructureType pCreateInfo->sType, is an invalid enumerator");
+ "vkCreateDynamicRasterLineState parameter, VkStructureType pCreateInfo->sType, is an invalid enumerator");
return false;
}
}
@@ -5860,9 +5860,9 @@
return true;
}
-bool PostCreateDynamicRasterState(
+bool PostCreateDynamicRasterLineState(
VkDevice device,
- VkDynamicRasterState* pState,
+ VkDynamicRasterLineState* pState,
VkResult result)
{
@@ -5872,7 +5872,7 @@
if(result < VK_SUCCESS)
{
- std::string reason = "vkCreateDynamicRasterState parameter, VkResult result, is " + EnumeratorString(result);
+ std::string reason = "vkCreateDynamicRasterLineState parameter, VkResult result, is " + EnumeratorString(result);
log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK", reason.c_str());
return false;
}
@@ -5880,30 +5880,30 @@
return true;
}
-VK_LAYER_EXPORT VkResult VKAPI vkCreateDynamicRasterState(
+VK_LAYER_EXPORT VkResult VKAPI vkCreateDynamicRasterLineState(
VkDevice device,
- const VkDynamicRasterStateCreateInfo* pCreateInfo,
- VkDynamicRasterState* pState)
+ const VkDynamicRasterLineStateCreateInfo* pCreateInfo,
+ VkDynamicRasterLineState* pState)
{
- PreCreateDynamicRasterState(device, pCreateInfo);
+ PreCreateDynamicRasterLineState(device, pCreateInfo);
- VkResult result = get_dispatch_table(pc_device_table_map, device)->CreateDynamicRasterState(device, pCreateInfo, pState);
+ VkResult result = get_dispatch_table(pc_device_table_map, device)->CreateDynamicRasterLineState(device, pCreateInfo, pState);
- PostCreateDynamicRasterState(device, pState, result);
+ PostCreateDynamicRasterLineState(device, pState, result);
return result;
}
-bool PostDestroyDynamicRasterState(
+bool PostDestroyDynamicRasterLineState(
VkDevice device,
- VkDynamicRasterState dynamicRasterState,
+ VkDynamicRasterLineState dynamicRasterLineState,
VkResult result)
{
if(result < VK_SUCCESS)
{
- std::string reason = "vkDestroyDynamicRasterState parameter, VkResult result, is " + EnumeratorString(result);
+ std::string reason = "vkDestroyDynamicRasterLineState parameter, VkResult result, is " + EnumeratorString(result);
log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK", reason.c_str());
return false;
}
@@ -5911,13 +5911,92 @@
return true;
}
-VK_LAYER_EXPORT VkResult VKAPI vkDestroyDynamicRasterState(
+VK_LAYER_EXPORT VkResult VKAPI vkDestroyDynamicRasterLineState(
VkDevice device,
- VkDynamicRasterState dynamicRasterState)
+ VkDynamicRasterLineState dynamicRasterLineState)
{
- VkResult result = get_dispatch_table(pc_device_table_map, device)->DestroyDynamicRasterState(device, dynamicRasterState);
+ VkResult result = get_dispatch_table(pc_device_table_map, device)->DestroyDynamicRasterLineState(device, dynamicRasterLineState);
- PostDestroyDynamicRasterState(device, dynamicRasterState, result);
+ PostDestroyDynamicRasterLineState(device, dynamicRasterLineState, result);
+
+ return result;
+}
+
+bool PreCreateDynamicRasterDepthBiasState(
+ VkDevice device,
+ const VkDynamicRasterDepthBiasStateCreateInfo* pCreateInfo)
+{
+ if(pCreateInfo != nullptr)
+ {
+ if(pCreateInfo->sType != VK_STRUCTURE_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE_CREATE_INFO)
+ {
+ log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK",
+ "vkCreateDynamicRasterDepthBiasState parameter, VkStructureType pCreateInfo->sType, is an invalid enumerator");
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool PostCreateDynamicRasterDepthBiasState(
+ VkDevice device,
+ VkDynamicRasterDepthBiasState* pState,
+ VkResult result)
+{
+
+ if(pState != nullptr)
+ {
+ }
+
+ if(result < VK_SUCCESS)
+ {
+ std::string reason = "vkCreateDynamicRasterDepthBiasState parameter, VkResult result, is " + EnumeratorString(result);
+ log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK", reason.c_str());
+ return false;
+ }
+
+ return true;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkCreateDynamicRasterDepthBiasState(
+ VkDevice device,
+ const VkDynamicRasterDepthBiasStateCreateInfo* pCreateInfo,
+ VkDynamicRasterDepthBiasState* pState)
+{
+ PreCreateDynamicRasterDepthBiasState(device, pCreateInfo);
+
+ VkResult result = get_dispatch_table(pc_device_table_map, device)->CreateDynamicRasterDepthBiasState(device, pCreateInfo, pState);
+
+ PostCreateDynamicRasterDepthBiasState(device, pState, result);
+
+ return result;
+}
+
+bool PostDestroyDynamicRasterDepthBiasState(
+ VkDevice device,
+ VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState,
+ VkResult result)
+{
+
+
+ if(result < VK_SUCCESS)
+ {
+ std::string reason = "vkDestroyDynamicRasterDepthBiasState parameter, VkResult result, is " + EnumeratorString(result);
+ log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK", reason.c_str());
+ return false;
+ }
+
+ return true;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkDestroyDynamicRasterDepthBiasState(
+ VkDevice device,
+ VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState)
+{
+ VkResult result = get_dispatch_table(pc_device_table_map, device)->DestroyDynamicRasterDepthBiasState(device, dynamicRasterDepthBiasState);
+
+ PostDestroyDynamicRasterDepthBiasState(device, dynamicRasterDepthBiasState, result);
return result;
}
@@ -6745,22 +6824,40 @@
PostCmdBindDynamicViewportState(cmdBuffer, dynamicViewportState);
}
-bool PostCmdBindDynamicRasterState(
+bool PostCmdBindDynamicRasterLineState(
VkCmdBuffer cmdBuffer,
- VkDynamicRasterState dynamicRasterState)
+ VkDynamicRasterLineState dynamicRasterLineState)
{
return true;
}
-VK_LAYER_EXPORT void VKAPI vkCmdBindDynamicRasterState(
+VK_LAYER_EXPORT void VKAPI vkCmdBindDynamicRasterLineState(
VkCmdBuffer cmdBuffer,
- VkDynamicRasterState dynamicRasterState)
+ VkDynamicRasterLineState dynamicRasterLineState)
{
- get_dispatch_table(pc_device_table_map, cmdBuffer)->CmdBindDynamicRasterState(cmdBuffer, dynamicRasterState);
+ get_dispatch_table(pc_device_table_map, cmdBuffer)->CmdBindDynamicRasterLineState(cmdBuffer, dynamicRasterLineState);
- PostCmdBindDynamicRasterState(cmdBuffer, dynamicRasterState);
+ PostCmdBindDynamicRasterLineState(cmdBuffer, dynamicRasterLineState);
+}
+
+bool PostCmdBindDynamicRasterDepthBiasState(
+ VkCmdBuffer cmdBuffer,
+ VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState)
+{
+
+
+ return true;
+}
+
+VK_LAYER_EXPORT void VKAPI vkCmdBindDynamicRasterDepthBiasState(
+ VkCmdBuffer cmdBuffer,
+ VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState)
+{
+ get_dispatch_table(pc_device_table_map, cmdBuffer)->CmdBindDynamicRasterDepthBiasState(cmdBuffer, dynamicRasterDepthBiasState);
+
+ PostCmdBindDynamicRasterDepthBiasState(cmdBuffer, dynamicRasterDepthBiasState);
}
bool PostCmdBindDynamicColorBlendState(
@@ -8262,8 +8359,10 @@
return (PFN_vkVoidFunction) vkAllocDescriptorSets;
if (!strcmp(funcName, "vkCreateDynamicViewportState"))
return (PFN_vkVoidFunction) vkCreateDynamicViewportState;
- if (!strcmp(funcName, "vkCreateDynamicRasterState"))
- return (PFN_vkVoidFunction) vkCreateDynamicRasterState;
+ if (!strcmp(funcName, "vkCreateDynamicRasterLineState"))
+ return (PFN_vkVoidFunction) vkCreateDynamicRasterLineState;
+ if (!strcmp(funcName, "vkCreateDynamicRasterDepthBiasState"))
+ return (PFN_vkVoidFunction) vkCreateDynamicRasterDepthBiasState;
if (!strcmp(funcName, "vkCreateDynamicColorBlendState"))
return (PFN_vkVoidFunction) vkCreateDynamicColorBlendState;
if (!strcmp(funcName, "vkCreateDynamicDepthStencilState"))
diff --git a/loader/gpa_helper.h b/loader/gpa_helper.h
index 96c4f6a..bb79f03 100644
--- a/loader/gpa_helper.h
+++ b/loader/gpa_helper.h
@@ -215,10 +215,14 @@
return (void*) vkCreateDynamicViewportState;
if (!strcmp(name, "DestroyDynamicViewportState"))
return (void*) vkDestroyDynamicViewportState;
- if (!strcmp(name, "CreateDynamicRasterState"))
- return (void*) vkCreateDynamicRasterState;
- if (!strcmp(name, "DestroyDynamicRasterState"))
- return (void*) vkDestroyDynamicRasterState;
+ if (!strcmp(name, "CreateDynamicRasterLineState"))
+ return (void*) vkCreateDynamicRasterLineState;
+ if (!strcmp(name, "DestroyDynamicRasterLineState"))
+ return (void*) vkDestroyDynamicRasterLineState;
+ if (!strcmp(name, "CreateDynamicRasterDepthBiasState"))
+ return (void*) vkCreateDynamicRasterDepthBiasState;
+ if (!strcmp(name, "DestroyDynamicRasterDepthBiasState"))
+ return (void*) vkDestroyDynamicRasterDepthBiasState;
if (!strcmp(name, "CreateDynamicColorBlendState"))
return (void*) vkCreateDynamicColorBlendState;
if (!strcmp(name, "DestroyDynamicColorBlendState"))
@@ -257,8 +261,10 @@
return (void*) vkCmdBindPipeline;
if (!strcmp(name, "CmdBindDynamicViewportState"))
return (void*) vkCmdBindDynamicViewportState;
- if (!strcmp(name, "CmdBindDynamicRasterState"))
- return (void*) vkCmdBindDynamicRasterState;
+ if (!strcmp(name, "CmdBindDynamicRasterLineState"))
+ return (void*) vkCmdBindDynamicRasterLineState;
+ if (!strcmp(name, "CmdBindDynamicRasterDepthBiasState"))
+ return (void*) vkCmdBindDynamicRasterDepthBiasState;
if (!strcmp(name, "CmdBindDynamicColorBlendState"))
return (void*) vkCmdBindDynamicColorBlendState;
if (!strcmp(name, "CmdBindDynamicDepthStencilState"))
diff --git a/loader/table_ops.h b/loader/table_ops.h
index 4003e9c..dbb0ee4 100644
--- a/loader/table_ops.h
+++ b/loader/table_ops.h
@@ -112,8 +112,10 @@
table->UpdateDescriptorSets = (PFN_vkUpdateDescriptorSets) gpa(dev, "vkUpdateDescriptorSets");
table->CreateDynamicViewportState = (PFN_vkCreateDynamicViewportState) gpa(dev, "vkCreateDynamicViewportState");
table->DestroyDynamicViewportState = (PFN_vkDestroyDynamicViewportState) gpa(dev, "vkDestroyDynamicViewportState");
- table->CreateDynamicRasterState = (PFN_vkCreateDynamicRasterState) gpa(dev, "vkCreateDynamicRasterState");
- table->DestroyDynamicRasterState = (PFN_vkDestroyDynamicRasterState) gpa(dev, "vkDestroyDynamicRasterState");
+ table->CreateDynamicRasterLineState = (PFN_vkCreateDynamicRasterLineState) gpa(dev, "vkCreateDynamicRasterLineState");
+ table->DestroyDynamicRasterLineState = (PFN_vkDestroyDynamicRasterLineState) gpa(dev, "vkDestroyDynamicRasterLineState");
+ table->CreateDynamicRasterDepthBiasState = (PFN_vkCreateDynamicRasterDepthBiasState) gpa(dev, "vkCreateDynamicRasterDepthBiasState");
+ table->DestroyDynamicRasterDepthBiasState = (PFN_vkDestroyDynamicRasterDepthBiasState) gpa(dev, "vkDestroyDynamicRasterDepthBiasState");
table->CreateDynamicColorBlendState = (PFN_vkCreateDynamicColorBlendState) gpa(dev, "vkCreateDynamicColorBlendState");
table->DestroyDynamicColorBlendState = (PFN_vkDestroyDynamicColorBlendState) gpa(dev, "vkDestroyDynamicColorBlendState");
table->CreateDynamicDepthStencilState = (PFN_vkCreateDynamicDepthStencilState) gpa(dev, "vkCreateDynamicDepthStencilState");
@@ -133,7 +135,8 @@
table->ResetCommandBuffer = (PFN_vkResetCommandBuffer) gpa(dev, "vkResetCommandBuffer");
table->CmdBindPipeline = (PFN_vkCmdBindPipeline) gpa(dev, "vkCmdBindPipeline");
table->CmdBindDynamicViewportState = (PFN_vkCmdBindDynamicViewportState) gpa(dev, "vkCmdBindDynamicViewportState");
- table->CmdBindDynamicRasterState = (PFN_vkCmdBindDynamicRasterState) gpa(dev, "vkCmdBindDynamicRasterState");
+ table->CmdBindDynamicRasterLineState = (PFN_vkCmdBindDynamicRasterLineState) gpa(dev, "vkCmdBindDynamicRasterLineState");
+ table->CmdBindDynamicRasterDepthBiasState = (PFN_vkCmdBindDynamicRasterDepthBiasState) gpa(dev, "vkCmdBindDynamicRasterDepthBiasState");
table->CmdBindDynamicColorBlendState = (PFN_vkCmdBindDynamicColorBlendState) gpa(dev, "vkCmdBindDynamicColorBlendState");
table->CmdBindDynamicDepthStencilState = (PFN_vkCmdBindDynamicDepthStencilState) gpa(dev, "vkCmdBindDynamicDepthStencilState");
table->CmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets) gpa(dev, "vkCmdBindDescriptorSets");
@@ -344,10 +347,14 @@
return (void *) table->CreateDynamicViewportState;
if (!strcmp(name, "DestroyDynamicViewportState"))
return (void *) table->DestroyDynamicViewportState;
- if (!strcmp(name, "CreateDynamicRasterState"))
- return (void *) table->CreateDynamicRasterState;
- if (!strcmp(name, "DestroyDynamicRasterState"))
- return (void *) table->DestroyDynamicRasterState;
+ if (!strcmp(name, "CreateDynamicRasterLineState"))
+ return (void *) table->CreateDynamicRasterLineState;
+ if (!strcmp(name, "DestroyDynamicRasterLineState"))
+ return (void *) table->DestroyDynamicRasterLineState;
+ if (!strcmp(name, "CreateDynamicRasterDepthBiasState"))
+ return (void *) table->CreateDynamicRasterDepthBiasState;
+ if (!strcmp(name, "DestroyDynamicRasterDepthBiasState"))
+ return (void *) table->DestroyDynamicRasterDepthBiasState;
if (!strcmp(name, "CreateDynamicColorBlendState"))
return (void *) table->CreateDynamicColorBlendState;
if (!strcmp(name, "DestroyDynamicColorBlendState"))
@@ -386,8 +393,10 @@
return (void *) table->CmdBindPipeline;
if (!strcmp(name, "CmdBindDynamicViewportState"))
return (void *) table->CmdBindDynamicViewportState;
- if (!strcmp(name, "CmdBindDynamicRasterState"))
- return (void *) table->CmdBindDynamicRasterState;
+ if (!strcmp(name, "CmdBindDynamicRasterLineState"))
+ return (void *) table->CmdBindDynamicRasterLineState;
+ if (!strcmp(name, "CmdBindDynamicRasterDepthBiasState"))
+ return (void *) table->CmdBindDynamicRasterDepthBiasState;
if (!strcmp(name, "CmdBindDynamicColorBlendState"))
return (void *) table->CmdBindDynamicColorBlendState;
if (!strcmp(name, "CmdBindDynamicDepthStencilState"))
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 45a9ff7..715fcf7 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -1016,22 +1016,40 @@
return disp->DestroyDynamicViewportState(device, dynamicViewportState);
}
-LOADER_EXPORT VkResult VKAPI vkCreateDynamicRasterState(VkDevice device, const VkDynamicRasterStateCreateInfo* pCreateInfo, VkDynamicRasterState* pState)
+LOADER_EXPORT VkResult VKAPI vkCreateDynamicRasterLineState(VkDevice device, const VkDynamicRasterLineStateCreateInfo* pCreateInfo, VkDynamicRasterLineState* pState)
{
const VkLayerDispatchTable *disp;
disp = loader_get_dispatch(device);
- return disp->CreateDynamicRasterState(device, pCreateInfo, pState);
+ return disp->CreateDynamicRasterLineState(device, pCreateInfo, pState);
}
-LOADER_EXPORT VkResult VKAPI vkDestroyDynamicRasterState(VkDevice device, VkDynamicRasterState dynamicRasterState)
+LOADER_EXPORT VkResult VKAPI vkDestroyDynamicRasterLineState(VkDevice device, VkDynamicRasterLineState dynamicRasterLineState)
{
const VkLayerDispatchTable *disp;
disp = loader_get_dispatch(device);
- return disp->DestroyDynamicRasterState(device, dynamicRasterState);
+ return disp->DestroyDynamicRasterLineState(device, dynamicRasterLineState);
+}
+
+LOADER_EXPORT VkResult VKAPI vkCreateDynamicRasterDepthBiasState(VkDevice device, const VkDynamicRasterDepthBiasStateCreateInfo* pCreateInfo, VkDynamicRasterDepthBiasState* pState)
+{
+ const VkLayerDispatchTable *disp;
+
+ disp = loader_get_dispatch(device);
+
+ return disp->CreateDynamicRasterDepthBiasState(device, pCreateInfo, pState);
+}
+
+LOADER_EXPORT VkResult VKAPI vkDestroyDynamicRasterDepthBiasState(VkDevice device, VkDynamicRasterDepthBiasState dynamicRasterDepthBiasState)
+{
+ const VkLayerDispatchTable *disp;
+
+ disp = loader_get_dispatch(device);
+
+ return disp->DestroyDynamicRasterDepthBiasState(device, dynamicRasterDepthBiasState);
}
LOADER_EXPORT VkResult VKAPI vkCreateDynamicColorBlendState(VkDevice device, const VkDynamicColorBlendStateCreateInfo* pCreateInfo, VkDynamicColorBlendState* pState)
@@ -1211,13 +1229,22 @@
disp->CmdBindDynamicViewportState(cmdBuffer, state);
}
-LOADER_EXPORT void VKAPI vkCmdBindDynamicRasterState(VkCmdBuffer cmdBuffer, VkDynamicRasterState state)
+LOADER_EXPORT void VKAPI vkCmdBindDynamicRasterLineState(VkCmdBuffer cmdBuffer, VkDynamicRasterLineState state)
{
const VkLayerDispatchTable *disp;
disp = loader_get_dispatch(cmdBuffer);
- disp->CmdBindDynamicRasterState(cmdBuffer, state);
+ disp->CmdBindDynamicRasterLineState(cmdBuffer, state);
+}
+
+LOADER_EXPORT void VKAPI vkCmdBindDynamicRasterDepthBiasState(VkCmdBuffer cmdBuffer, VkDynamicRasterDepthBiasState state)
+{
+ const VkLayerDispatchTable *disp;
+
+ disp = loader_get_dispatch(cmdBuffer);
+
+ disp->CmdBindDynamicRasterDepthBiasState(cmdBuffer, state);
}
LOADER_EXPORT void VKAPI vkCmdBindDynamicColorBlendState(VkCmdBuffer cmdBuffer, VkDynamicColorBlendState state)
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 6ece510..46dd4d4 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -27,10 +27,11 @@
typedef enum _BsoFailSelect {
BsoFailNone = 0x00000000,
- BsoFailRaster = 0x00000001,
- BsoFailViewport = 0x00000002,
- BsoFailColorBlend = 0x00000004,
- BsoFailDepthStencil = 0x00000008,
+ BsoFailRasterLine = 0x00000001,
+ BsoFailRasterDepthBias = 0x00000002,
+ BsoFailViewport = 0x00000004,
+ BsoFailColorBlend = 0x00000008,
+ BsoFailDepthStencil = 0x00000010,
} BsoFailSelect;
struct vktriangle_vs_uniform {
@@ -307,8 +308,11 @@
}
cmdBuffer->PrepareAttachments();
- if ((failMask & BsoFailRaster) != BsoFailRaster) {
- cmdBuffer->BindDynamicRasterState(m_stateRaster);
+ if ((failMask & BsoFailRasterLine) != BsoFailRasterLine) {
+ cmdBuffer->BindDynamicRasterLineState(m_stateRasterLine);
+ }
+ if ((failMask & BsoFailRasterDepthBias) != BsoFailRasterDepthBias) {
+ cmdBuffer->BindDynamicRasterDepthBiasState(m_stateRasterDepthBias);
}
if ((failMask & BsoFailViewport) != BsoFailViewport) {
cmdBuffer->BindDynamicViewportState(m_stateViewport);
@@ -894,20 +898,37 @@
#endif
#endif
#if OBJ_TRACKER_TESTS
-TEST_F(VkLayerTest, RasterStateNotBound)
+TEST_F(VkLayerTest, RasterLineStateNotBound)
{
VkFlags msgFlags;
std::string msgString;
ASSERT_NO_FATAL_FAILURE(InitState());
m_errorMonitor->ClearState();
- TEST_DESCRIPTION("Simple Draw Call that validates failure when a raster state object is not bound beforehand");
+ TEST_DESCRIPTION("Simple Draw Call that validates failure when a raster line state object is not bound beforehand");
- VKTriangleTest(bindStateVertShaderText, bindStateFragShaderText, BsoFailRaster);
+ VKTriangleTest(bindStateVertShaderText, bindStateFragShaderText, BsoFailRasterLine);
msgFlags = m_errorMonitor->GetState(&msgString);
- ASSERT_TRUE(0 != (msgFlags & VK_DBG_REPORT_ERROR_BIT)) << "Did not receive an error from Not Binding a Raster State Object";
- if (!strstr(msgString.c_str(),"Raster object not bound to this command buffer")) {
- FAIL() << "Error received was not 'Raster object not bound to this command buffer'";
+ ASSERT_TRUE(0 != (msgFlags & VK_DBG_REPORT_ERROR_BIT)) << "Did not receive an error from Not Binding a Raster Line State Object";
+ if (!strstr(msgString.c_str(),"Raster line object not bound to this command buffer")) {
+ FAIL() << "Error received was not 'Raster line object not bound to this command buffer'";
+ }
+}
+
+TEST_F(VkLayerTest, RasterDepthBiasStateNotBound)
+{
+ VkFlags msgFlags;
+ std::string msgString;
+ ASSERT_NO_FATAL_FAILURE(InitState());
+ m_errorMonitor->ClearState();
+ TEST_DESCRIPTION("Simple Draw Call that validates failure when a raster depth bias state object is not bound beforehand");
+
+ VKTriangleTest(bindStateVertShaderText, bindStateFragShaderText, BsoFailRasterDepthBias);
+
+ msgFlags = m_errorMonitor->GetState(&msgString);
+ ASSERT_TRUE(0 != (msgFlags & VK_DBG_REPORT_ERROR_BIT)) << "Did not receive an error from Not Binding a Raster Depth Bias State Object";
+ if (!strstr(msgString.c_str(),"Raster depth bias object not bound to this command buffer")) {
+ FAIL() << "Error received was not 'Raster depth bias object not bound to this command buffer'";
}
}
diff --git a/tests/render_tests.cpp b/tests/render_tests.cpp
index e2766d0..2d78995 100644
--- a/tests/render_tests.cpp
+++ b/tests/render_tests.cpp
@@ -384,7 +384,8 @@
}
cmdBuffer->PrepareAttachments();
- cmdBuffer->BindDynamicRasterState(m_stateRaster);
+ cmdBuffer->BindDynamicRasterLineState(m_stateRasterLine);
+ cmdBuffer->BindDynamicRasterDepthBiasState(m_stateRasterDepthBias);
cmdBuffer->BindDynamicViewportState(m_stateViewport);
cmdBuffer->BindDynamicColorBlendState(m_colorBlend);
cmdBuffer->BindDynamicDepthStencilState(m_stateDepthStencil);
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 780b71f..d601b8c 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -40,7 +40,8 @@
m_cmdBuffer(),
m_renderPass(VK_NULL_HANDLE),
m_framebuffer(VK_NULL_HANDLE),
- m_stateRaster( VK_NULL_HANDLE ),
+ m_stateRasterLine( VK_NULL_HANDLE ),
+ m_stateRasterDepthBias( VK_NULL_HANDLE ),
m_colorBlend( VK_NULL_HANDLE ),
m_stateViewport( VK_NULL_HANDLE ),
m_stateDepthStencil( VK_NULL_HANDLE ),
@@ -155,7 +156,8 @@
{
if (m_colorBlend) vkDestroyDynamicColorBlendState(device(), m_colorBlend);
if (m_stateDepthStencil) vkDestroyDynamicDepthStencilState(device(), m_stateDepthStencil);
- if (m_stateRaster) vkDestroyDynamicRasterState(device(), m_stateRaster);
+ if (m_stateRasterLine) vkDestroyDynamicRasterLineState(device(), m_stateRasterLine);
+ if (m_stateRasterDepthBias) vkDestroyDynamicRasterDepthBiasState(device(), m_stateRasterDepthBias);
if (m_cmdBuffer)
delete m_cmdBuffer;
if (m_cmdPool) vkDestroyCommandPool(device(), m_cmdPool);
@@ -211,11 +213,18 @@
m_render_target_fmt = surfFormats[0].format;
free(surfFormats);
- // create a raster state (solid, back-face culling)
- VkDynamicRasterStateCreateInfo raster = {};
- raster.sType = VK_STRUCTURE_TYPE_DYNAMIC_RASTER_STATE_CREATE_INFO;
+ VkDynamicRasterLineStateCreateInfo rasterLine = {};
+ rasterLine.sType = VK_STRUCTURE_TYPE_DYNAMIC_RASTER_LINE_STATE_CREATE_INFO;
+ rasterLine.lineWidth = 1;
+ err = vkCreateDynamicRasterLineState( device(), &rasterLine, &m_stateRasterLine );
+ ASSERT_VK_SUCCESS(err);
- err = vkCreateDynamicRasterState( device(), &raster, &m_stateRaster );
+ VkDynamicRasterDepthBiasStateCreateInfo rasterDepthBias = {};
+ rasterDepthBias.sType = VK_STRUCTURE_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE_CREATE_INFO;
+ rasterDepthBias.depthBias = 0.0f;
+ rasterDepthBias.depthBiasClamp = 0.0f;
+ rasterDepthBias.slopeScaledDepthBias = 0.0f;
+ err = vkCreateDynamicRasterDepthBiasState( device(), &rasterDepthBias, &m_stateRasterDepthBias );
ASSERT_VK_SUCCESS(err);
VkDynamicColorBlendStateCreateInfo blend = {};
@@ -1165,6 +1174,7 @@
m_rs_state.fillMode = VK_FILL_MODE_SOLID;
m_rs_state.cullMode = VK_CULL_MODE_BACK;
m_rs_state.frontFace = VK_FRONT_FACE_CW;
+ m_rs_state.depthBiasEnable = VK_FALSE;
memset(&m_cb_state,0,sizeof(m_cb_state));
m_cb_state.sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
@@ -1466,9 +1476,14 @@
vkCmdBindDynamicViewportState( handle(), viewportState);
}
-void VkCommandBufferObj::BindDynamicRasterState(VkDynamicRasterState rasterState)
+void VkCommandBufferObj::BindDynamicRasterLineState(VkDynamicRasterLineState rasterLineState)
{
- vkCmdBindDynamicRasterState( handle(), rasterState);
+ vkCmdBindDynamicRasterLineState( handle(), rasterLineState);
+}
+
+void VkCommandBufferObj::BindDynamicRasterDepthBiasState(VkDynamicRasterDepthBiasState rasterDepthBiasState)
+{
+ vkCmdBindDynamicRasterDepthBiasState( handle(), rasterDepthBiasState);
}
void VkCommandBufferObj::BindDynamicColorBlendState(VkDynamicColorBlendState colorBlendState)
diff --git a/tests/vkrenderframework.h b/tests/vkrenderframework.h
index f8f2b27..f58a9b4 100644
--- a/tests/vkrenderframework.h
+++ b/tests/vkrenderframework.h
@@ -112,7 +112,8 @@
VkFramebuffer m_framebuffer;
std::vector<VkClearValue> m_renderPassClearValues;
VkRenderPassBeginInfo m_renderPassBeginInfo;
- VkDynamicRasterState m_stateRaster;
+ VkDynamicRasterLineState m_stateRasterLine;
+ VkDynamicRasterDepthBiasState m_stateRasterDepthBias;
VkDynamicColorBlendState m_colorBlend;
VkDynamicViewportState m_stateViewport;
VkDynamicDepthStencilState m_stateDepthStencil;
@@ -176,7 +177,8 @@
void BindIndexBuffer(VkIndexBufferObj *indexBuffer, VkDeviceSize offset);
void BeginRenderPass(const VkRenderPassBeginInfo &info);
void BindDynamicViewportState(VkDynamicViewportState viewportState);
- void BindDynamicRasterState(VkDynamicRasterState rasterState);
+ void BindDynamicRasterLineState(VkDynamicRasterLineState rasterLineState);
+ void BindDynamicRasterDepthBiasState(VkDynamicRasterDepthBiasState rasterStateDepthBias);
void BindDynamicColorBlendState(VkDynamicColorBlendState colorBlendState);
void BindDynamicDepthStencilState(VkDynamicDepthStencilState depthStencilState);
void EndRenderPass();
diff --git a/tests/vktestbinding.cpp b/tests/vktestbinding.cpp
index 6ad1b7e..fe5f6cb 100644
--- a/tests/vktestbinding.cpp
+++ b/tests/vktestbinding.cpp
@@ -791,11 +791,18 @@
NON_DISPATCHABLE_HANDLE_INIT(vkCreateDynamicViewportState, dev, &info);
}
-NON_DISPATCHABLE_HANDLE_DTOR(DynamicRasterState, vkDestroyDynamicRasterState)
+NON_DISPATCHABLE_HANDLE_DTOR(DynamicRasterLineState, vkDestroyDynamicRasterLineState)
-void DynamicRasterState::init(const Device &dev, const VkDynamicRasterStateCreateInfo &info)
+void DynamicRasterLineState::init(const Device &dev, const VkDynamicRasterLineStateCreateInfo &info)
{
- NON_DISPATCHABLE_HANDLE_INIT(vkCreateDynamicRasterState, dev, &info);
+ NON_DISPATCHABLE_HANDLE_INIT(vkCreateDynamicRasterLineState, dev, &info);
+}
+
+NON_DISPATCHABLE_HANDLE_DTOR(DynamicRasterDepthBiasState, vkDestroyDynamicRasterDepthBiasState)
+
+void DynamicRasterDepthBiasState::init(const Device &dev, const VkDynamicRasterDepthBiasStateCreateInfo &info)
+{
+ NON_DISPATCHABLE_HANDLE_INIT(vkCreateDynamicRasterDepthBiasState, dev, &info);
}
NON_DISPATCHABLE_HANDLE_DTOR(DynamicColorBlendState, vkDestroyDynamicColorBlendState)
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 63be2a9..d5873ce 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -56,7 +56,8 @@
class DescriptorSetPool;
class DescriptorSet;
class DynamicViewportState;
-class DynamicRasterState;
+class DynamicRasterLineState;
+class DynamicRasterDepthBiasState;
class DynamicColorBlendState;
class DynamicDepthStencilState;
class CmdBuffer;
@@ -559,12 +560,20 @@
void init(const Device &dev, const VkDynamicViewportStateCreateInfo &info);
};
-class DynamicRasterState : public internal::NonDispHandle<VkDynamicRasterState> {
+class DynamicRasterLineState : public internal::NonDispHandle<VkDynamicRasterLineState> {
public:
- ~DynamicRasterState();
+ ~DynamicRasterLineState();
- // vkCreateDynamicRasterState()
- void init(const Device &dev, const VkDynamicRasterStateCreateInfo &info);
+ // vkCreateDynamicRasterLineState()
+ void init(const Device &dev, const VkDynamicRasterLineStateCreateInfo &info);
+};
+
+class DynamicRasterDepthBiasState : public internal::NonDispHandle<VkDynamicRasterDepthBiasState> {
+public:
+ ~DynamicRasterDepthBiasState();
+
+ // vkCreateDynamicRasterDepthBiasState()
+ void init(const Device &dev, const VkDynamicRasterDepthBiasStateCreateInfo &info);
};
class DynamicColorBlendState : public internal::NonDispHandle<VkDynamicColorBlendState> {
diff --git a/vk-layer-generate.py b/vk-layer-generate.py
index 42db53c..4af3b37 100755
--- a/vk-layer-generate.py
+++ b/vk-layer-generate.py
@@ -1404,7 +1404,7 @@
def generate_command_buffer_validates(self):
cbv_txt = []
cbv_txt.append('%s' % self.lineinfo.get())
- for o in ['VkPipeline', 'VkDynamicViewportState', 'VkDynamicRasterState', 'VkDynamicColorBlendState', 'VkDynamicDepthStencilState',
+ for o in ['VkPipeline', 'VkDynamicViewportState', 'VkDynamicRasterLineState', 'VkDynamicRasterDepthBiasState', 'VkDynamicColorBlendState', 'VkDynamicDepthStencilState',
'VkPipelineLayout', 'VkBuffer', 'VkEvent', 'VkQueryPool', 'VkRenderPass', 'VkFramebuffer']:
cbv_txt.append('static void validate_object(VkCmdBuffer dispatchable_object, %s object)' % (o))
cbv_txt.append('{')
@@ -1597,7 +1597,8 @@
'VkDescriptorPool' : 'VK_OBJECT_TYPE_DESCRIPTOR_POOL',
'VkDescriptorSet' : 'VK_OBJECT_TYPE_DESCRIPTOR_SET',
'VkDynamicViewportState' : 'VK_OBJECT_TYPE_DYNAMIC_VIEWPORT_STATE',
- 'VkDynamicRasterState' : 'VK_OBJECT_TYPE_DYNAMIC_RASTER_STATE',
+ 'VkDynamicRasterLineState' : 'VK_OBJECT_TYPE_DYNAMIC_RASTER_LINE_STATE',
+ 'VkDynamicRasterDepthBiasState' : 'VK_OBJECT_TYPE_DYNAMIC_RASTER_DEPTH_BIAS_STATE',
'VkDynamicColorBlendState' : 'VK_OBJECT_TYPE_DYNAMIC_COLOR_BLEND_STATE',
'VkDynamicDepthStencilState' : 'VK_OBJECT_TYPE_DYNAMIC_DEPTH_STENCIL_STATE',
'VkFramebuffer' : 'VK_OBJECT_TYPE_FRAMEBUFFER',
diff --git a/vulkan.py b/vulkan.py
index 8843ee0..e7206b4 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -209,7 +209,8 @@
"VkDescriptorPool",
"VkDescriptorSet",
"VkDynamicViewportState",
- "VkDynamicRasterState",
+ "VkDynamicRasterLineState",
+ "VkDynamicRasterDepthBiasState",
"VkDynamicColorBlendState",
"VkDynamicDepthStencilState",
"VkRenderPass",
@@ -672,14 +673,23 @@
[Param("VkDevice", "device"),
Param("VkDynamicViewportState", "dynamicViewportState")]),
- Proto("VkResult", "CreateDynamicRasterState",
+ Proto("VkResult", "CreateDynamicRasterLineState",
[Param("VkDevice", "device"),
- Param("const VkDynamicRasterStateCreateInfo*", "pCreateInfo"),
- Param("VkDynamicRasterState*", "pState")]),
+ Param("const VkDynamicRasterLineStateCreateInfo*", "pCreateInfo"),
+ Param("VkDynamicRasterLineState*", "pState")]),
- Proto("VkResult", "DestroyDynamicRasterState",
+ Proto("VkResult", "DestroyDynamicRasterLineState",
[Param("VkDevice", "device"),
- Param("VkDynamicRasterState", "dynamicRasterState")]),
+ Param("VkDynamicRasterLineState", "dynamicRasterLineState")]),
+
+ Proto("VkResult", "CreateDynamicRasterDepthBiasState",
+ [Param("VkDevice", "device"),
+ Param("const VkDynamicRasterDepthBiasStateCreateInfo*", "pCreateInfo"),
+ Param("VkDynamicRasterDepthBiasState*", "pState")]),
+
+ Proto("VkResult", "DestroyDynamicRasterDepthBiasState",
+ [Param("VkDevice", "device"),
+ Param("VkDynamicRasterDepthBiasState", "dynamicRasterDepthBiasState")]),
Proto("VkResult", "CreateDynamicColorBlendState",
[Param("VkDevice", "device"),
@@ -742,9 +752,13 @@
[Param("VkCmdBuffer", "cmdBuffer"),
Param("VkDynamicViewportState", "dynamicViewportState")]),
- Proto("void", "CmdBindDynamicRasterState",
+ Proto("void", "CmdBindDynamicRasterLineState",
[Param("VkCmdBuffer", "cmdBuffer"),
- Param("VkDynamicRasterState", "dynamicRasterState")]),
+ Param("VkDynamicRasterLineState", "dynamicRasterLineState")]),
+
+ Proto("void", "CmdBindDynamicRasterDepthBiasState",
+ [Param("VkCmdBuffer", "cmdBuffer"),
+ Param("VkDynamicRasterDepthBiasState", "dynamicRasterDepthBiasState")]),
Proto("void", "CmdBindDynamicColorBlendState",
[Param("VkCmdBuffer", "cmdBuffer"),
@@ -1140,7 +1154,8 @@
"VkDescriptorPool",
"VkDescriptorSet",
"VkDynamicViewportState",
- "VkDynamicRasterState",
+ "VkDynamicRasterLineState",
+ "VkDynamicRasterDepthBiasState",
"VkDynamicColorBlendState",
"VkDynamicDepthStencilState",
"VkRenderPass",