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 */
uint32_t max_sets;
float line_width_min;
float line_width_max;
} a6xx;
struct {

View File

@ -328,6 +328,8 @@ a6xx_base = A6XXProps(
prim_alloc_threshold = 0x7,
vs_max_inputs_count = 32,
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_per_view_viewport = True,
supports_ibo_ubwc = True,
line_width_min = 1.0,
line_width_max = 127.5,
)
a7xx_725 = A7XXProps(

View File

@ -307,7 +307,7 @@ tu_get_features(struct tu_physical_device *pdevice,
features->depthBiasClamp = true;
features->fillModeNonSolid = true;
features->depthBounds = true;
features->wideLines = false;
features->wideLines = pdevice->info->a6xx.line_width_max > 1.0;
features->largePoints = true;
features->alphaToOne = true;
features->multiViewport = true;
@ -894,10 +894,11 @@ tu_get_properties(struct tu_physical_device *pdevice,
props->discreteQueuePriorities = 2;
props->pointSizeRange[0] = 1;
props->pointSizeRange[1] = 4092;
props->lineWidthRange[0] =
props->lineWidthRange[1] = 1.0;
props->lineWidthRange[0] = pdevice->info->a6xx.line_width_min;
props->lineWidthRange[1] = pdevice->info->a6xx.line_width_max;
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->standardSampleLocations = true;
props->optimalBufferCopyOffsetAlignment = 128;