2017-10-30 17:16 GMT+01:00 Wladimir J. van der Laan <laa...@gmail.com>: > - This core must load shaders from memory (AFAIK) > - Yet another new location for UNIFORMS > > Signed-off-by: Wladimir J. van der Laan <laa...@gmail.com>
Reviewed-by: Christian Gmeiner <christian.gmei...@gmail.com> > --- > src/gallium/drivers/etnaviv/etnaviv_screen.c | 19 +++++++++++++++---- > 1 file changed, 15 insertions(+), 4 deletions(-) > > diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c > b/src/gallium/drivers/etnaviv/etnaviv_screen.c > index e48b395..1db0743 100644 > --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c > +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c > @@ -730,7 +730,13 @@ etna_get_specs(struct etna_screen *screen) > screen->specs.has_halti2_instructions = > VIV_FEATURE(screen, chipMinorFeatures4, HALTI2); > > - if (VIV_FEATURE(screen, chipMinorFeatures3, INSTRUCTION_CACHE)) { > + if (screen->specs.halti >= 5) { > + /* GC7000 - this core must load shaders from memory. */ > + screen->specs.vs_offset = 0; > + screen->specs.ps_offset = 0; > + screen->specs.max_instructions = 0; /* Do not program shaders manually > */ > + screen->specs.has_icache = true; > + } else if (VIV_FEATURE(screen, chipMinorFeatures3, INSTRUCTION_CACHE)) { > /* GC3000 - this core is capable of loading shaders from > * memory. It can also run shaders from registers, as a fallback, but > * "max_instructions" does not have the correct value. It has place for > @@ -783,9 +789,14 @@ etna_get_specs(struct etna_screen *screen) > screen->specs.max_vs_uniforms = 256; > screen->specs.max_ps_uniforms = 256; > } > - /* unified uniform memory on GC3000 - HALTI1 feature bit is just a guess > - */ > - if (VIV_FEATURE(screen, chipMinorFeatures2, HALTI1)) { > + > + if (screen->specs.halti >= 5) { > + screen->specs.has_unified_uniforms = true; > + screen->specs.vs_uniforms_offset = VIVS_SH_HALTI5_UNIFORMS_MIRROR(0); > + screen->specs.ps_uniforms_offset = > VIVS_SH_HALTI5_UNIFORMS(screen->specs.max_vs_uniforms*4); > + } else if (screen->specs.halti >= 1) { > + /* unified uniform memory on GC3000 - HALTI1 feature bit is just a > guess > + */ > screen->specs.has_unified_uniforms = true; > screen->specs.vs_uniforms_offset = VIVS_SH_UNIFORMS(0); > /* hardcode PS uniforms to start after end of VS uniforms - > -- > 2.7.4 > -- greets -- Christian Gmeiner, MSc https://christian-gmeiner.info _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev