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:
Samuel Pitoiset
2018-12-18 09:11:30 +01:00
parent 6b976024a8
commit 9606310081
3 changed files with 4 additions and 4 deletions

View File

@@ -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,

View File

@@ -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;
} }

View File

@@ -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,