From 8e8b0422ce9253042835adaa7de429cb4a3d73f5 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Mon, 7 Dec 2015 15:55:11 -0700 Subject: layers: LX223, Properly handle NULL pipelineCache in pipeline create routines ObjectTracker was choking on null compute pipeline caches. Disabled validation check on null pipelineCaches for ONLY Create[Compute|Graphics]Pipelines APIs. --- vk-layer-generate.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/vk-layer-generate.py b/vk-layer-generate.py index 56d26c10..cc1fb425 100755 --- a/vk-layer-generate.py +++ b/vk-layer-generate.py @@ -1272,10 +1272,6 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append(' return log_msg(mdd(dispatchable_object), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType) 0, reinterpret_cast(object), 0, OBJTRACK_INVALID_OBJECT, "OBJTRACK",') procs_txt.append(' "Invalid %s Object 0x%%" PRIx64 ,reinterpret_cast(object));' % o) else: - if o == "VkPipelineCache": - procs_txt.append(' // VkPipelineCache object can be NULL if not caching') - procs_txt.append(' if (object == VK_NULL_HANDLE) return VK_TRUE;') - procs_txt.append('') if o == "VkImage": procs_txt.append(' // We need to validate normal image objects and those from the swapchain') procs_txt.append(' if ((%sMap.find((uint64_t)object) == %sMap.end()) &&' % (o, o)) @@ -1660,6 +1656,11 @@ class ObjectTrackerSubcommand(Subcommand): using_line += ' if (fence != VK_NULL_HANDLE) {\n' using_line += ' skipCall |= validate_%s(%s, %s);\n' % (name, param0_name, opn) using_line += ' }\n' + elif ('CreateGraphicsPipelines' in proto.name or 'CreateComputePipelines' in proto.name) and 'pipelineCache' == opn: + using_line += ' // PipelineCache is optional, validate if present\n' + using_line += ' if (pipelineCache != VK_NULL_HANDLE) {\n' + using_line += ' skipCall |= validate_%s(%s, %s);\n' % (name, param0_name, opn) + using_line += ' }\n' else: using_line += ' skipCall |= validate_%s(%s, %s);\n' % (name, param0_name, opn) else: -- cgit v1.2.3