radv: enable shaderStorageImageMultisample feature on GFX8+
Untested on older chips. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
@@ -736,7 +736,7 @@ void radv_GetPhysicalDeviceFeatures(
|
|||||||
.shaderTessellationAndGeometryPointSize = true,
|
.shaderTessellationAndGeometryPointSize = true,
|
||||||
.shaderImageGatherExtended = true,
|
.shaderImageGatherExtended = true,
|
||||||
.shaderStorageImageExtendedFormats = true,
|
.shaderStorageImageExtendedFormats = true,
|
||||||
.shaderStorageImageMultisample = false,
|
.shaderStorageImageMultisample = pdevice->rad_info.chip_class >= VI,
|
||||||
.shaderUniformBufferArrayDynamicIndexing = true,
|
.shaderUniformBufferArrayDynamicIndexing = true,
|
||||||
.shaderSampledImageArrayDynamicIndexing = true,
|
.shaderSampledImageArrayDynamicIndexing = true,
|
||||||
.shaderStorageBufferArrayDynamicIndexing = true,
|
.shaderStorageBufferArrayDynamicIndexing = true,
|
||||||
@@ -975,7 +975,7 @@ void radv_GetPhysicalDeviceProperties(
|
|||||||
.sampledImageIntegerSampleCounts = VK_SAMPLE_COUNT_1_BIT,
|
.sampledImageIntegerSampleCounts = VK_SAMPLE_COUNT_1_BIT,
|
||||||
.sampledImageDepthSampleCounts = sample_counts,
|
.sampledImageDepthSampleCounts = sample_counts,
|
||||||
.sampledImageStencilSampleCounts = sample_counts,
|
.sampledImageStencilSampleCounts = sample_counts,
|
||||||
.storageImageSampleCounts = VK_SAMPLE_COUNT_1_BIT,
|
.storageImageSampleCounts = pdevice->rad_info.chip_class >= VI ? sample_counts : VK_SAMPLE_COUNT_1_BIT,
|
||||||
.maxSampleMaskWords = 1,
|
.maxSampleMaskWords = 1,
|
||||||
.timestampComputeAndGraphics = true,
|
.timestampComputeAndGraphics = true,
|
||||||
.timestampPeriod = 1000000.0 / pdevice->rad_info.clock_crystal_freq,
|
.timestampPeriod = 1000000.0 / pdevice->rad_info.clock_crystal_freq,
|
||||||
|
@@ -1093,8 +1093,7 @@ static VkResult radv_get_image_format_properties(struct radv_physical_device *ph
|
|||||||
info->type == VK_IMAGE_TYPE_2D &&
|
info->type == VK_IMAGE_TYPE_2D &&
|
||||||
(format_feature_flags & (VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT |
|
(format_feature_flags & (VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT |
|
||||||
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT)) &&
|
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT)) &&
|
||||||
!(info->flags & VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT) &&
|
!(info->flags & VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT)) {
|
||||||
!(info->usage & VK_IMAGE_USAGE_STORAGE_BIT)) {
|
|
||||||
sampleCounts |= VK_SAMPLE_COUNT_2_BIT | VK_SAMPLE_COUNT_4_BIT | VK_SAMPLE_COUNT_8_BIT;
|
sampleCounts |= VK_SAMPLE_COUNT_2_BIT | VK_SAMPLE_COUNT_4_BIT | VK_SAMPLE_COUNT_8_BIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -245,6 +245,7 @@ radv_shader_compile_to_nir(struct radv_device *device,
|
|||||||
.storage_16bit = true,
|
.storage_16bit = true,
|
||||||
.geometry_streams = true,
|
.geometry_streams = true,
|
||||||
.transform_feedback = true,
|
.transform_feedback = true,
|
||||||
|
.storage_image_ms = true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
entry_point = spirv_to_nir(spirv, module->size / 4,
|
entry_point = spirv_to_nir(spirv, module->size / 4,
|
||||||
|
Reference in New Issue
Block a user