const Unique<VkCommandBuffer> cmdBuffer(
makeCommandBuffer(context, *cmdPool));
- const deUint32 numWorkgroups[3] = {4, 2, 2};
-
- const deUint32 localSizesToTestCount = 8;
- deUint32 localSizesToTest[localSizesToTestCount][3] =
- {
- {1, 1, 1},
- {subgroupSize, 1, 1},
- {1, subgroupSize, 1},
- {1, 1, subgroupSize},
- {32, 4, 1},
- {1, 4, 32},
- {3, 5, 7},
- {1, 1, 1} // Isn't used, just here to make double buffering checks easier
- };
-
- Move<VkPipeline> pipelines[localSizesToTestCount - 1];
+ Move<VkPipeline> *pipelines = new Move<VkPipeline>[localSizesToTestCount - 1];
+
+ context.getTestContext().touchWatchdog();
pipelines[0] =
makeComputePipeline(context, *pipelineLayout, *shaderModule,
- VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT, (VkPipeline) DE_NULL,
- localSizesToTest[0][0], localSizesToTest[0][1], localSizesToTest[0][2]);
+ pipelineShaderStageCreateFlags, VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT, (VkPipeline) DE_NULL,
+ localSizesToTest[0][0], localSizesToTest[0][1], localSizesToTest[0][2],
+ isRequiredSubgroupSize ? subgroupSize : 0u);
+ context.getTestContext().touchWatchdog();
for (deUint32 index = 1; index < (localSizesToTestCount - 1); index++)
{
const deUint32 nextY = localSizesToTest[index][1];
const deUint32 nextZ = localSizesToTest[index][2];
+ context.getTestContext().touchWatchdog();
pipelines[index] =
makeComputePipeline(context, *pipelineLayout, *shaderModule,
- VK_PIPELINE_CREATE_DERIVATIVE_BIT, *pipelines[0],
- nextX, nextY, nextZ);
+ pipelineShaderStageCreateFlags, VK_PIPELINE_CREATE_DERIVATIVE_BIT, *pipelines[0],
+ nextX, nextY, nextZ,
+ isRequiredSubgroupSize ? subgroupSize : 0u);
+ context.getTestContext().touchWatchdog();
}
for (deUint32 index = 0; index < (localSizesToTestCount - 1); index++)