layers: Add additional check for RenderPass sampleCount
authorTobin Ehlis <tobin@lunarg.com>
Thu, 21 May 2015 15:06:56 +0000 (09:06 -0600)
committerTobin Ehlis <tobin@lunarg.com>
Fri, 22 May 2015 18:43:31 +0000 (12:43 -0600)
Was checking PSO MSAA num samples against FrameBuffer sampleCount. This change adds an additional check against RenderPass sampleCount.

layers/draw_state.cpp

index 7836198..81faa12 100755 (executable)
@@ -522,9 +522,9 @@ static void validatePipelineState(const GLOBAL_CB_NODE* pCB, const VkPipelineBin
         if (pCB->activeRenderPass) {
             VkRenderPassCreateInfo* pRPCI = renderPassMap[pCB->activeRenderPass];
             VkFramebufferCreateInfo* pFBCI = frameBufferMap[pCB->framebuffer];
-            if (psoNumSamples != pFBCI->sampleCount) {
+            if ((psoNumSamples != pFBCI->sampleCount) || (psoNumSamples != pRPCI->sampleCount)) {
                 char str[1024];
-                sprintf(str, "Num samples mismatche! Binding PSO (%p) with %u samples while current RenderPass (%p) uses FB (%p) with %u samples!", (void*)pipeline, psoNumSamples, (void*)pCB->activeRenderPass, (void*)pCB->framebuffer, pFBCI->sampleCount);
+                sprintf(str, "Num samples mismatche! Binding PSO (%p) with %u samples while current RenderPass (%p) w/ %u samples uses FB (%p) with %u samples!", (void*)pipeline, psoNumSamples, (void*)pCB->activeRenderPass, pRPCI->sampleCount, (void*)pCB->framebuffer, pFBCI->sampleCount);
                 layerCbMsg(VK_DBG_MSG_ERROR, VK_VALIDATION_LEVEL_0, pipeline, 0, DRAWSTATE_NUM_SAMPLES_MISMATCH, "DS", str);
             }
         } else {