freedreno,turnip: Make VS input attr/binding count configurable

a610 and similar models have fewer VS inputs available.

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20991>
This commit is contained in:
Danylo Piliaiev 2023-02-02 17:23:22 +01:00 committed by Marge Bot
parent 4a43ab3019
commit 02ea3e4e10
4 changed files with 8 additions and 3 deletions

View file

@ -173,6 +173,8 @@ struct fd_dev_info {
/* Corresponds to HLSQ_CONTROL_1_REG::PRIMALLOCTHRESHOLD */
uint32_t prim_alloc_threshold;
uint32_t vs_max_inputs_count;
struct {
uint32_t PC_POWER_CNTL;
uint32_t TPL1_DBG_ECO_CNTL;

View file

@ -158,6 +158,8 @@ class A6xxGPUInfo(GPUInfo):
self.a6xx.prim_alloc_threshold = 0x7
self.a6xx.vs_max_inputs_count = 32
for name, val in template.items():
if name == "magic": # handled above
continue

View file

@ -1070,8 +1070,8 @@ tu_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
.maxDescriptorSetSampledImages = max_descriptor_set_size,
.maxDescriptorSetStorageImages = max_descriptor_set_size,
.maxDescriptorSetInputAttachments = MAX_RTS,
.maxVertexInputAttributes = 32,
.maxVertexInputBindings = 32,
.maxVertexInputAttributes = pdevice->info->a6xx.vs_max_inputs_count,
.maxVertexInputBindings = pdevice->info->a6xx.vs_max_inputs_count,
.maxVertexInputAttributeOffset = 4095,
.maxVertexInputBindingStride = 2048,
.maxVertexOutputComponents = 128,

View file

@ -671,7 +671,8 @@ fd_screen_get_shader_param(struct pipe_screen *pscreen,
case PIPE_SHADER_CAP_MAX_INPUTS:
if (shader == PIPE_SHADER_GEOMETRY && is_a6xx(screen))
return 16;
return is_a6xx(screen) ? 32 : 16;
return is_a6xx(screen) ?
(screen->info->a6xx.vs_max_inputs_count) : 16;
case PIPE_SHADER_CAP_MAX_OUTPUTS:
return is_a6xx(screen) ? 32 : 16;
case PIPE_SHADER_CAP_MAX_TEMPS: