radv: enable stippledBresenhamLines on GFX9 chips

This isn't supposed to work nor does it match radeonsi but setting
AUTO_RESET_CNTL=0 by default for GFX9 chips is what gets it passing
linestrip CTS tests:

dEQP-VK.rasterization.primitives.dynamic_stipple.bresenham_line_strip
dEQP-VK.rasterization.primitives.dynamic_stipple_and_topology.bresenham_line_strip
dEQP-VK.rasterization.primitives.dynamic_stipple_and_topology.bresenham_line_strip_wide
dEQP-VK.rasterization.primitives.static_stipple.bresenham_line_strip

Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24623>
This commit is contained in:
Juston Li 2023-08-10 13:22:09 -07:00 committed by Marge Bot
parent 7301327f9c
commit dc7c1d989b
2 changed files with 4 additions and 5 deletions

View file

@ -2211,7 +2211,9 @@ static void
radv_emit_line_stipple(struct radv_cmd_buffer *cmd_buffer)
{
const struct radv_dynamic_state *d = &cmd_buffer->state.dynamic;
uint32_t auto_reset_cntl = 2;
enum amd_gfx_level gfx_level = cmd_buffer->device->physical_device->rad_info.gfx_level;
/* GFX9 chips fail linestrip CTS tests unless this is set to 0 = no reset */
uint32_t auto_reset_cntl = (gfx_level == GFX9) ? 0 : 2;
if (radv_primitive_topology_is_line_list(d->vk.ia.primitive_topology))
auto_reset_cntl = 1;

View file

@ -796,10 +796,7 @@ radv_physical_device_get_features(const struct radv_physical_device *pdevice, st
.bresenhamLines = true,
.smoothLines = true,
.stippledRectangularLines = false,
/* FIXME: Some stippled Bresenham CTS fails on Vega10
* but work on Raven.
*/
.stippledBresenhamLines = pdevice->rad_info.gfx_level != GFX9,
.stippledBresenhamLines = true,
.stippledSmoothLines = false,
/* VK_EXT_robustness2 */