tu: wideLines support for a7xx.

Passes dEQP-VK.clipping.clip_volume.clipped.wide_lines_*

Signed-off-by: Amber Harmonia <amber@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27775>
This commit is contained in:
Amber 2024-02-24 17:54:14 +01:00 committed by Marge Bot
parent beb07fafba
commit 48da361eb7
3 changed files with 12 additions and 4 deletions

View file

@ -203,6 +203,9 @@ struct fd_dev_info {
/* maximum number of descriptor sets */ /* maximum number of descriptor sets */
uint32_t max_sets; uint32_t max_sets;
float line_width_min;
float line_width_max;
} a6xx; } a6xx;
struct { struct {

View file

@ -328,6 +328,8 @@ a6xx_base = A6XXProps(
prim_alloc_threshold = 0x7, prim_alloc_threshold = 0x7,
vs_max_inputs_count = 32, vs_max_inputs_count = 32,
max_sets = 5, max_sets = 5,
line_width_min = 1.0,
line_width_max = 1.0,
) )
@ -787,6 +789,8 @@ a7xx_base = A6XXProps(
has_lrz_dir_tracking = True, has_lrz_dir_tracking = True,
has_per_view_viewport = True, has_per_view_viewport = True,
supports_ibo_ubwc = True, supports_ibo_ubwc = True,
line_width_min = 1.0,
line_width_max = 127.5,
) )
a7xx_725 = A7XXProps( a7xx_725 = A7XXProps(

View file

@ -307,7 +307,7 @@ tu_get_features(struct tu_physical_device *pdevice,
features->depthBiasClamp = true; features->depthBiasClamp = true;
features->fillModeNonSolid = true; features->fillModeNonSolid = true;
features->depthBounds = true; features->depthBounds = true;
features->wideLines = false; features->wideLines = pdevice->info->a6xx.line_width_max > 1.0;
features->largePoints = true; features->largePoints = true;
features->alphaToOne = true; features->alphaToOne = true;
features->multiViewport = true; features->multiViewport = true;
@ -894,10 +894,11 @@ tu_get_properties(struct tu_physical_device *pdevice,
props->discreteQueuePriorities = 2; props->discreteQueuePriorities = 2;
props->pointSizeRange[0] = 1; props->pointSizeRange[0] = 1;
props->pointSizeRange[1] = 4092; props->pointSizeRange[1] = 4092;
props->lineWidthRange[0] = props->lineWidthRange[0] = pdevice->info->a6xx.line_width_min;
props->lineWidthRange[1] = 1.0; props->lineWidthRange[1] = pdevice->info->a6xx.line_width_max;
props->pointSizeGranularity = 0.0625; props->pointSizeGranularity = 0.0625;
props->lineWidthGranularity = 0.0; props->lineWidthGranularity =
pdevice->info->a6xx.line_width_max == 1.0 ? 1.0 : 0.5;
props->strictLines = true; props->strictLines = true;
props->standardSampleLocations = true; props->standardSampleLocations = true;
props->optimalBufferCopyOffsetAlignment = 128; props->optimalBufferCopyOffsetAlignment = 128;