diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 14adda707af..3184db12168 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -1226,6 +1226,7 @@ radv_emit_sample_locations(struct radv_cmd_buffer *cmd_buffer) /* Emit the specified user sample locations. */ switch (num_samples) { + case 1: case 2: case 4: radeon_set_context_reg(R_028BF8_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_0, sample_locs_pixel[0][0]); diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index b1f8494926f..c168a1c6fbc 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -1721,7 +1721,8 @@ radv_get_physical_device_properties(struct radv_physical_device *pdev) .transformFeedbackDraw = true, /* VK_EXT_sample_locations */ - .sampleLocationSampleCounts = VK_SAMPLE_COUNT_2_BIT | VK_SAMPLE_COUNT_4_BIT | VK_SAMPLE_COUNT_8_BIT, + .sampleLocationSampleCounts = (pdev->info.gfx_level >= GFX10 ? VK_SAMPLE_COUNT_1_BIT : 0) | + VK_SAMPLE_COUNT_2_BIT | VK_SAMPLE_COUNT_4_BIT | VK_SAMPLE_COUNT_8_BIT, .maxSampleLocationGridSize = (VkExtent2D){2, 2}, .sampleLocationCoordinateRange = {0.0f, 0.9375f}, .sampleLocationSubPixelBits = 4, @@ -2695,7 +2696,11 @@ VKAPI_ATTR void VKAPI_CALL radv_GetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT *pMultisampleProperties) { + VK_FROM_HANDLE(radv_physical_device, pdev, physicalDevice); + VkSampleCountFlagBits supported_samples = VK_SAMPLE_COUNT_2_BIT | VK_SAMPLE_COUNT_4_BIT | VK_SAMPLE_COUNT_8_BIT; + if (pdev->info.gfx_level >= GFX10) + supported_samples |= VK_SAMPLE_COUNT_1_BIT; if (samples & supported_samples) { pMultisampleProperties->maxSampleLocationGridSize = (VkExtent2D){2, 2};