Skip to content

Commit 23b64c9

Browse files
authored
fix vulkan validation error, do not enforce local_size_x be multiple of subgroup size (#6111)
1 parent 4c4ecdf commit 23b64c9

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

src/gpu.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1088,6 +1088,12 @@ void GpuInfoPrivate::query_extension_properties()
10881088
}
10891089

10901090
queryCooperativeMatrixProperties.resize(propertyCount);
1091+
for (uint32_t j = 0; j < propertyCount; j++)
1092+
{
1093+
memset(&queryCooperativeMatrixProperties[j], 0, sizeof(queryCooperativeMatrixProperties[j]));
1094+
queryCooperativeMatrixProperties[j].sType = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR;
1095+
queryCooperativeMatrixProperties[j].pNext = 0;
1096+
}
10911097
ret = vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(physicalDevice, &propertyCount, queryCooperativeMatrixProperties.data());
10921098
if (ret != VK_SUCCESS)
10931099
{
@@ -1141,6 +1147,7 @@ void GpuInfoPrivate::query_extension_properties()
11411147
queryCooperativeMatrixPropertiesNV.resize(propertyCount);
11421148
for (uint32_t j = 0; j < propertyCount; j++)
11431149
{
1150+
memset(&queryCooperativeMatrixPropertiesNV[j], 0, sizeof(queryCooperativeMatrixPropertiesNV[j]));
11441151
queryCooperativeMatrixPropertiesNV[j].sType = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV;
11451152
queryCooperativeMatrixPropertiesNV[j].pNext = 0;
11461153
}
@@ -3375,10 +3382,11 @@ int VulkanDevice::create_pipeline(VkShaderModule shader_module, VkPipelineLayout
33753382
pipelineShaderStageCreateInfo.pName = "main";
33763383
pipelineShaderStageCreateInfo.pSpecializationInfo = &specializationInfo;
33773384

3378-
if (info.support_compute_full_subgroups())
3379-
{
3380-
pipelineShaderStageCreateInfo.flags |= VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT;
3381-
}
3385+
// but full subgroup bits enforce local_size_x be multiple of subgroup size
3386+
// if (info.support_compute_full_subgroups())
3387+
// {
3388+
// pipelineShaderStageCreateInfo.flags |= VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT;
3389+
// }
33823390

33833391
void* enabledExtensionFeatures = 0;
33843392

0 commit comments

Comments
 (0)