mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-14 17:20:42 +01:00
etnaviv: update logic to determine uniform limits
Taken 1:1 from the header file. Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Lucas Stach l.stach@pengutronix.de
This commit is contained in:
parent
45cb5eee5d
commit
797a2e4fd0
1 changed files with 26 additions and 4 deletions
|
|
@ -529,14 +529,36 @@ etna_screen_query_dmabuf_modifiers(struct pipe_screen *pscreen,
|
||||||
static void
|
static void
|
||||||
etna_determine_uniform_limits(struct etna_screen *screen)
|
etna_determine_uniform_limits(struct etna_screen *screen)
|
||||||
{
|
{
|
||||||
/* from QueryShaderCaps in kernel driver */
|
/* values for the non unified case are taken from
|
||||||
if (screen->model < chipModel_GC4000) {
|
* gcmCONFIGUREUNIFORMS in the Vivante kernel driver file
|
||||||
screen->specs.max_vs_uniforms = 168;
|
* drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h.
|
||||||
|
*/
|
||||||
|
if (screen->model == chipModel_GC2000 &&
|
||||||
|
(screen->revision == 0x5118 || screen->revision == 0x5140)) {
|
||||||
|
screen->specs.max_vs_uniforms = 256;
|
||||||
screen->specs.max_ps_uniforms = 64;
|
screen->specs.max_ps_uniforms = 64;
|
||||||
} else {
|
} else if (screen->specs.num_constants == 320) {
|
||||||
|
screen->specs.max_vs_uniforms = 256;
|
||||||
|
screen->specs.max_ps_uniforms = 64;
|
||||||
|
} else if (screen->specs.num_constants > 256 &&
|
||||||
|
screen->model == chipModel_GC1000) {
|
||||||
|
/* All GC1000 series chips can only support 64 uniforms for ps on non-unified const mode. */
|
||||||
|
screen->specs.max_vs_uniforms = 256;
|
||||||
|
screen->specs.max_ps_uniforms = 64;
|
||||||
|
} else if (screen->specs.num_constants > 256) {
|
||||||
screen->specs.max_vs_uniforms = 256;
|
screen->specs.max_vs_uniforms = 256;
|
||||||
screen->specs.max_ps_uniforms = 256;
|
screen->specs.max_ps_uniforms = 256;
|
||||||
}
|
}
|
||||||
|
else if (screen->specs.num_constants == 256)
|
||||||
|
{
|
||||||
|
screen->specs.max_vs_uniforms = 256;
|
||||||
|
screen->specs.max_ps_uniforms = 256;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
screen->specs.max_vs_uniforms = 168;
|
||||||
|
screen->specs.max_ps_uniforms = 64;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue