Those are just memory management stats. Linux 4.9 will contain
optimizations that should prevent such fps drops.
Marek
On Sep 24, 2016 2:23 AM, "Romain Failliot"
wrote:
> So I've activated a bunch of stuff: GALLIUM_HUD="num-compilations,
> num-bytes-moved,num-evictions;fps,cpu;draw-calls,VRAM-u
If the shader cache falls back to doing a compile and link we need the
original attribute bindings as they could have changed after the program
was first linked.
---
src/compiler/glsl/linker.cpp | 5 -
src/compiler/glsl/shader_cache.cpp | 11 +++
src/mesa/main/mtypes.h
Pointers will have different lengths so we simple create a different
sha1 for each platform.
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 25 +++--
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/dri
Pointers will have different lengths so we simple create a different
sha1 for each platform.
---
src/compiler/glsl/shader_cache.cpp | 4 ++--
src/compiler/glsl/shader_cache.h | 6 ++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/comp
---
src/compiler/glsl/shader_cache.cpp | 8
1 file changed, 8 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 849854a..4eb5c37 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -1025,6 +10
A number of things can happen that change the shader source after it is
compiled or linked.
For example:
- Source changed after it is first compiled
- Source changed after linking
- Shader detached after linking
In order to be able to fallback to a full rebuild on a cache miss we
make a copy of t
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 12
1 file changed, 12 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i965/brw_shader_cache.c
index 00bc1d2..73e7afc 100644
--- a/src/mesa/drivers/dri/i965/brw_shader_cache.c
+++ b/src
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 4
1 file changed, 4 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i965/brw_shader_cache.c
index 73e7afc..8d13746 100644
--- a/src/mesa/drivers/dri/i965/brw_shader_cache.c
+++ b/src/mesa/driv
The old linked shader is deleted so we need to make sure we hold onto
these values.
---
src/compiler/glsl/linker.cpp | 8
1 file changed, 8 insertions(+)
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index 3d7e5ae..90af8a8 100644
--- a/src/compiler/glsl/linker.
---
src/compiler/glsl/shader_cache.cpp | 8
1 file changed, 8 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 746817e..849854a 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -1044,6 +10
---
src/compiler/glsl/linker.cpp | 70
1 file changed, 45 insertions(+), 25 deletions(-)
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index 1d77e45..3d7e5ae 100644
--- a/src/compiler/glsl/linker.cpp
+++ b/src/compiler/glsl/l
---
src/mesa/drivers/dri/i965/brw_tcs.c | 22 ++
src/mesa/drivers/dri/i965/brw_tes.c | 21 +
2 files changed, 35 insertions(+), 8 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_tcs.c
b/src/mesa/drivers/dri/i965/brw_tcs.c
index d5289fb..e4963fd 100
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 80
1 file changed, 80 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i965/brw_shader_cache.c
index 44ff969..f95dc57 100644
--- a/src/mesa/drivers/dri/i965/brw_shader_c
---
src/mesa/drivers/dri/i965/brw_compiler.h | 4 ++
src/mesa/drivers/dri/i965/brw_shader_cache.c | 66
src/mesa/drivers/dri/i965/brw_tcs.c | 2 +
src/mesa/drivers/dri/i965/brw_tes.c | 2 +
4 files changed, 74 insertions(+)
diff --git a/src/me
We already have the struct and paramlist we don't want to recreate
them as this is unnecessary and would mean we would need to remap
anything using the old paramlist to the addresses of the new one.
---
src/compiler/glsl/linker.cpp | 5
src/mesa/drivers/dri/i965/brw_link.cpp
---
src/compiler/glsl/shader_cache.cpp | 12 +++-
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index f974311..746817e 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cac
This will allow us to make use of the hash_table_call_foreach()
function from outside the object.
---
src/util/string_to_uint_map.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/util/string_to_uint_map.h b/src/util/string_to_uint_map.h
index e0533ec..18f5166 100644
--
These will be used by the on disk shader cache.
---
src/mesa/drivers/dri/i965/brw_program.h | 10 ++--
src/mesa/drivers/dri/i965/brw_state_upload.c | 18 +--
src/mesa/drivers/dri/i965/brw_tcs.c | 70 +---
src/mesa/drivers/dri/i965/brw_tes.c | 58 +
---
src/compiler/glsl/linker.cpp | 14 --
src/mesa/main/shaderobj.c| 16 +---
2 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index 9b4c2e9..849c027 100644
--- a/src/compiler/glsl/linker.cpp
++
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 48
1 file changed, 48 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i965/brw_shader_cache.c
index f95dc57..097e079 100644
--- a/src/mesa/drivers/dri/i965/brw_shader_c
---
src/compiler/glsl/shader_cache.cpp | 23 +++
1 file changed, 23 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 26d1792..f974311 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.c
Remove incompatiable binaries of a program before attempting
to store a new one.
A previous commit already handles deleting an incompatiable
binary for shader variants this handles the case for an initial
shader compile. Without this a variant would delete the binary
then fallback to a full recomp
---
src/compiler/glsl/shader_cache.cpp | 4
1 file changed, 4 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 4d0b711..26d1792 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -1001,6 +1001,8
---
src/compiler/glsl/shader_cache.cpp | 18 +-
src/mesa/drivers/dri/i965/brw_compiler.h | 2 +
src/mesa/drivers/dri/i965/brw_gs.c | 23 +--
src/mesa/drivers/dri/i965/brw_shader_cache.c | 97
4 files changed, 134 insertions(+), 6 deleti
---
src/mesa/drivers/dri/i965/brw_gs.c | 2 +-
src/mesa/drivers/dri/i965/brw_gs.h | 4
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_gs.c
b/src/mesa/drivers/dri/i965/brw_gs.c
index 73f88fa..7b668ba 100644
--- a/src/mesa/drivers/dri/i965/brw_gs.c
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 53 ++--
1 file changed, 51 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i965/brw_shader_cache.c
index 979f057..d571d4a 100644
--- a/src/mesa/drivers/dri/i
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i965/brw_shader_cache.c
index 5243725..44ff969 100644
--- a/src/mesa/drivers/dri/i965/brw_shader_cache.c
+++ b/src/mesa/dr
This allows up to skip certain linking tasks such as building the
resource list when we are falling back to a full compile after a
cache miss.
---
src/mesa/drivers/dri/i965/brw_link.cpp | 3 ++-
src/mesa/drivers/dri/i965/brw_shader.h | 4 +++-
src/mesa/main/dd.h | 3
Also add an assert to catch buffer overflows.
---
src/compiler/glsl/shader_cache.cpp | 13 +++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 5733e69..966229c 100644
--- a/src/compiler/glsl/sha
Since we know how big the list will be we can allocate the storage
upfront.
---
src/compiler/glsl/shader_cache.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 966229c..3121658 100644
--- a/src/compiler/glsl/shad
Here we skip the recreation of uniform storage if we are relinking
after a cache miss.
---
src/compiler/glsl/link_uniforms.cpp | 33 +---
src/compiler/glsl/linker.cpp | 9
src/compiler/glsl/linker.h | 3 ++-
src/compiler
Also remove cache item and fallback to full recompile if current Mesa
version differs.
V2: don't leak buffer`
---
src/compiler/glsl/shader_cache.cpp | 13 +
1 file changed, 13 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index d9
Caching SSO requires us to be a little more careful so disable
it for now.
---
src/compiler/glsl/linker.cpp | 7 ++-
src/mesa/drivers/dri/i965/brw_shader_cache.c | 2 +-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/g
---
src/compiler/glsl/link_uniforms.cpp | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/compiler/glsl/link_uniforms.cpp
b/src/compiler/glsl/link_uniforms.cpp
index 799bcb2..a79bb33 100644
--- a/src/compiler/glsl/link_uniforms.cpp
+++ b/src/compiler/glsl/link_uniforms
The program may have already been assigned an id so make sure to
use it.
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 4
1 file changed, 4 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i965/brw_shader_cache.c
index 070aee0..aaeb6ba 100
---
src/compiler/glsl/shader_cache.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index c876465..5733e69 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -68,6 +68,7 @@ en
We already pull these values from the metadata cache so no need to
recreate them.
---
src/compiler/glsl/linker.cpp | 29 +++--
src/mesa/main/shaderobj.c| 8 +---
2 files changed, 24 insertions(+), 13 deletions(-)
diff --git a/src/compiler/glsl/linker.cpp b/src/com
Previously we ended up with the same param list but in a different
location, which will mess up the pointers stored in the new cache
object if all stages were not fully rebuilt e.g. after a fragment
program cache miss.
This also stops the list from being leaked on fallback.
---
src/mesa/drivers/d
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 23 ++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i965/brw_shader_cache.c
index c076c1c..979f057 100644
--- a/src/mesa/drivers/dri/i965/br
This is normally generated at link time so we need to do it ourselves
for use with the shader cache.
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 9 -
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i96
---
src/compiler/glsl/cache.c | 4
1 file changed, 4 insertions(+)
diff --git a/src/compiler/glsl/cache.c b/src/compiler/glsl/cache.c
index a6a9e47..dd53f4e 100644
--- a/src/compiler/glsl/cache.c
+++ b/src/compiler/glsl/cache.c
@@ -141,6 +141,10 @@ cache_create(void)
struct stat sb;
---
src/mesa/drivers/dri/i965/brw_link.cpp | 22 --
src/mesa/main/shaderobj.c | 2 +-
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp
b/src/mesa/drivers/dri/i965/brw_link.cpp
index ca00f07..e106151 100644
--
Also remove cache item and fallback to full recompile if current Mesa
version differs.
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 17 +
1 file changed, 17 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i965/brw_shader_cache.
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 41 +---
1 file changed, 37 insertions(+), 4 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i965/brw_shader_cache.c
index 7b5de32..3e00010 100644
--- a/src/mesa/drivers/dri/i
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 8
1 file changed, 8 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i965/brw_shader_cache.c
index 19b0c81..9d95ee9 100644
--- a/src/mesa/drivers/dri/i965/brw_shader_cache.c
+++ b/src/mesa/
Otherwise we can end up with mismatching names between the cached
binary and the cached metadata.
---
src/compiler/glsl/ir_optimization.h | 2 +-
src/compiler/glsl/linker.cpp | 2 +-
src/compiler/glsl/lower_const_arrays_to_uniforms.cpp | 16 --
These may be lowered constant arrays or uniform values that we set before
linking
so we need to cache the actual uniform values.
---
src/compiler/glsl/shader_cache.cpp | 31 +++
1 file changed, 31 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/co
---
src/compiler/glsl/shader_cache.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index a24b6aa..d982ce0 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -989,6 +989,7 @@
---
src/compiler/glsl/shader_cache.cpp | 14 ++
1 file changed, 14 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index a0362f4..641a9e6 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -97
---
src/compiler/glsl/shader_cache.cpp | 4
1 file changed, 4 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 641a9e6..79ac3f9 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -971,6 +971,8 @
---
src/compiler/glsl/shader_cache.cpp | 87 ++
1 file changed, 87 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index fcdf7eb..a0362f4 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl
---
src/compiler/glsl/shader_cache.cpp | 15 +--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 7109243..fcdf7eb 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader
This will be used to remove cache items created with an old version
of Mesa from the cache.
---
src/compiler/glsl/cache.c | 22 ++
src/compiler/glsl/cache.h | 12
2 files changed, 34 insertions(+)
diff --git a/src/compiler/glsl/cache.c b/src/compiler/glsl/cache.c
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 31 +++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/drivers/dri/i965/brw_shader_cache.c
index f64269e..c076c1c 100644
--- a/src/mesa/drivers/dri/i9
---
src/compiler/glsl/link_uniforms.cpp | 2 +-
src/compiler/glsl/linker.h | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/compiler/glsl/link_uniforms.cpp
b/src/compiler/glsl/link_uniforms.cpp
index 220065f..c847ceb 100644
--- a/src/compiler/glsl/link_uniforms.
---
src/compiler/glsl/shader_cache.cpp | 12
1 file changed, 12 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 79ac3f9..9d7c551 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -973,
---
src/compiler/glsl/shader_cache.cpp | 49 +-
1 file changed, 43 insertions(+), 6 deletions(-)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 39bc10f..fb1004e 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/s
---
src/compiler/glsl/shader_cache.cpp | 157 +
1 file changed, 157 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index fb1004e..78eab2b 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/gls
---
src/mesa/drivers/dri/i965/brw_link.cpp | 6 +-
src/mesa/main/shaderapi.c | 6 +-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp
b/src/mesa/drivers/dri/i965/brw_link.cpp
index f5dbfcf..e7d2106 100644
--- a/src/mesa/dr
---
src/compiler/glsl/shader_cache.cpp | 30 ++
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index cd3d9e8..0609f41 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compi
---
src/compiler/glsl/shader_cache.cpp | 8
1 file changed, 8 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 78eab2b..7109243 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -85,6 +85,1
---
src/compiler/glsl/linker.cpp | 5 +++--
src/compiler/glsl/program.h | 3 ++-
src/compiler/glsl/standalone.cpp | 2 +-
src/mesa/main/ff_fragment_shader.cpp | 2 +-
src/mesa/main/shaderapi.c| 2 +-
src/mesa/program/ir_to_mesa.cpp | 5 +++--
src/mesa/program/
This uses the recently-added cache.c to write out the final linked
binary for vertex and fragment shader programs.
This is based off the initial implementation done by Carl.
---
src/mesa/drivers/dri/i965/Makefile.sources | 1 +
src/mesa/drivers/dri/i965/brw_shader_cache.c | 390 ++
From: Carl Worth
The three additional tables are AttributeBindings, FragDataBindings,
and FragDataIndexBindings.
The first table (AttributeBindings) was identified as missing by
trying to test the shader cache with a program that called
glGetAttribLocation.
Many thanks to Tapani Pälli , as it w
---
src/compiler/glsl/shader_cache.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index dd2babe..6a3267c 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -148,6 +148,8 @@
---
docs/shading.html | 1 +
src/mesa/main/mtypes.h| 1 +
src/mesa/main/shaderapi.c | 2 ++
3 files changed, 4 insertions(+)
diff --git a/docs/shading.html b/docs/shading.html
index cf989ce..51d0986 100644
--- a/docs/shading.html
+++ b/docs/shading.html
@@ -49,6 +49,7 @@ execution. T
This will be used to skip checking the cache and force a recompile.
---
src/compiler/glsl/glsl_parser_extras.cpp | 22 --
src/compiler/glsl/program.h | 2 +-
src/compiler/glsl/standalone.cpp | 3 ++-
src/mesa/main/shaderapi.c| 2 +-
4 fil
For now this disables the shader cache when transform feedback is enabled
via the GL API.
---
src/compiler/glsl/linker.cpp | 15 -
src/compiler/glsl/shader_cache.cpp | 87
src/mesa/drivers/dri/i965/brw_shader_cache.c | 7 +++
3 files chan
---
src/compiler/glsl/shader_cache.cpp | 6 ++
1 file changed, 6 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 8b33f0e..dd2babe 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -147,6 +147,1
We don't care what instance of the program it is we only care if
its the correct binary to load so ignore program id for on disk cache.
---
src/mesa/drivers/dri/i965/brw_shader_cache.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_shader_cache.c
b/src/mesa/dr
---
src/compiler/glsl/shader_cache.cpp | 24 +++-
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 08927d9..10e94c8 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/gl
---
src/compiler/glsl/shader_cache.cpp | 7 +++
1 file changed, 7 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 66506af..9822eb9 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -79,6 +79,11
The scenario is a program has been linked for the first time and we
cache the program metadata, then glLinkProgram() is called for a second
time. Since we will now retrieve the program metadata from cache we need
to skip linking.
---
src/compiler/glsl/shader_cache.cpp | 1 +
1 file changed, 1 inse
We may have seen the individual shaders before and skipped compiling
but they may not have been used together in this combination before.
We could probably only compile the shaders which were skipped here
but we need to be careful because the source may also have been
changed since the last compil
---
src/compiler/glsl/shader_cache.cpp | 100 +
1 file changed, 100 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 9822eb9..39bc10f 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/gls
The hash key for glsl metadata is a hash of the hashes of each GLSL
source string.
This commit uses the put_key/get_key support in the cache put the SHA-1
hash of the source string for each successfully compiled shader into the
cache. This allows for early, optimistic returns from glCompileShader
The shader cache will start calling these from the compiler.
---
src/compiler/glsl/standalone_scaffolding.cpp | 8
src/compiler/glsl/standalone_scaffolding.h | 4
2 files changed, 12 insertions(+)
diff --git a/src/compiler/glsl/standalone_scaffolding.cpp
b/src/compiler/glsl/stand
---
src/compiler/glsl/shader_cache.cpp | 14 ++
1 file changed, 14 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 10e94c8..1052c67 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -52
---
src/compiler/glsl/shader_cache.cpp | 16 ++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 1052c67..8b33f0e 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shade
This uses the recently-added cache.c to write out a serialization of
various state that's required in order to successfully load and use a
binary written out by a drivers backend, this state is referred to as
"metadata" throughout the implementation.
This patch is based on the initial work done by
This initially adds support for simple uniforms and varyings.
---
src/compiler/glsl/shader_cache.cpp | 114 +
1 file changed, 114 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.cpp
index 6a3267c..cd3d9e8 100644
-
From: Carl Worth
This will be used by the on disk shader cache.
Signed-off-by: Timothy Arceri
---
src/mesa/drivers/dri/i965/brw_compiler.h | 4
src/mesa/drivers/dri/i965/brw_vs.c | 2 ++
src/mesa/drivers/dri/i965/brw_wm.c | 2 ++
3 files changed, 8 insertions(+)
diff --git a/
From: Carl Worth
V2: dont leak cache
Signed-off-by: Timothy Arceri
---
src/mesa/main/context.c | 6 ++
src/mesa/main/mtypes.h | 5 +
2 files changed, 11 insertions(+)
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index f550b0c..358cc01 100644
--- a/src/mesa/main/cont
From: Carl Worth
Signed-off-by: Timothy Arceri
---
src/mesa/drivers/dri/i965/brw_vs.c | 3 +--
src/mesa/drivers/dri/i965/brw_vs.h | 4
src/mesa/drivers/dri/i965/brw_wm.c | 2 +-
src/mesa/drivers/dri/i965/brw_wm.h | 4
4 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/src
From: Carl Worth
Signed-off-by: Timothy Arceri
---
src/compiler/glsl/link_uniforms.cpp | 2 ++
src/mesa/main/mtypes.h | 3 ++-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/compiler/glsl/link_uniforms.cpp
b/src/compiler/glsl/link_uniforms.cpp
index 4d3fc6d..220
This generates the program ids at cache upload time rather than at
program creation time.
Moving the id generation here will be useful for on-disk shader
cache support because it means we don't generate ids if there was
a cache miss and we had to fall back to compiling from source.
This increases
From: Carl Worth
The shader cache is expected to be developed incrementally over a
fairly long series of commits. For that period of instability, we
require users to opt into the shader cache by setting:
MESA_GLSL_CACHE_ENABLE=1
In the future, when the shader cache is complete, we can r
From: Carl Worth
This code provides for an on-disk cache of objects. Objects are stored
and retrieved via names that are arbitrary 20-byte sequences,
(intended to be SHA-1 hashes of something identifying for the
content). The directory used for the cache can be specified by means
of environment v
V5:
- added support for caching shaders with transform feedback
enabled by the in shader xfb qualifiers now ARB_enhanced_layouts
is enabled.
- rebased on last 3 months of Mesa changes
V4:
- lots of reworking patches to remove code churn should be much nicer now
- fixed fallback when shader has b
From: Carl Worth
As part of the shader-cache work an upcoming change will add new
references to _mesa_add_parameter and _mesa_new_parameter_list from
the glsl code. To prepare for that, and to allow the standalone
glsl_compiler to still link, here we add mesa/program/prog_parameter.c
to the libgl
Patches 1-7 & 9 are,
Reviewed-by: Edward O'Callaghan
and 8 is,
Acked-by: Edward O'Callaghan
On 09/22/2016 10:28 PM, Nicolai Hähnle wrote:
> Hi all,
>
> some fixes based on feedback from v1.
>
> In related news, https://reviews.llvm.org/D24822 improves the lowering of
> the division-by-constant
So I've activated a bunch of stuff:
GALLIUM_HUD="num-compilations,num-bytes-moved,num-evictions;fps,cpu;draw-calls,VRAM-usage"
and had one small freeze of around 2s.
Here is the screenshot (look at the fps drop and the concurrent num bytes
moved and num evictions):
https://framapic.org/GSwpilewir6
Thanks Marek, I'll test that!
In the meantime, firstly I fixed an important bug in Mesamatrix so now the
matrix is more accurate, and I also just found the problem with Dota 2: it
is not because of the new drivers but because of a change I did in the
video options, I don't remember having done tha
Series looks good to me.
Reviewed-by: Charmaine Lee
From: Brian Paul
Sent: Friday, September 23, 2016 8:48 AM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee
Subject: [PATCH 8/8] st/mesa: small optimization in swizzle_swizzle()
Usually, there's no
On 09/23/2016 03:28 PM, Charmaine Lee wrote:
From: Brian Paul
Sent: Friday, September 23, 2016 8:48 AM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee
Subject: [PATCH 1/8] svga: eliminate unneeded gotos in
svga_validate_surface_view()
---
src/gallium/drivers/svga/svga_surface.c | 9 +
>From: Brian Paul
>Sent: Friday, September 23, 2016 8:48 AM
>To: mesa-dev@lists.freedesktop.org
>Cc: Charmaine Lee
>Subject: [PATCH 1/8] svga: eliminate unneeded gotos in
>svga_validate_surface_view()
>---
> src/gallium/drivers/svga/svga_surface.c | 9 +++--
> 1 file changed, 3 insertions(+
>From: Brian Paul
>Sent: Friday, September 23, 2016 8:48 AM
>To: mesa-dev@lists.freedesktop.org
>Cc: Charmaine Lee
>Subject: [PATCH 1/8] svga: eliminate unneeded gotos in
>svga_validate_surface_view()
>---
> src/gallium/drivers/svga/svga_surface.c | 9 +++--
> 1 file changed, 3 insertions(+
Hi
On Sat, Sep 24, 2016 at 12:00 AM Dave Airlie wrote:
> On 14 September 2016 at 04:00, wrote:
> > From: Marc-André Lureau
> >
> > When updating the sampler views, virgl might need to flush. After
> > flushing, the resources are reattached, however, the sampler
> > enabled_mask isn't yet updat
On Sep 23, 2016 10:14 PM, "Nanley Chery" wrote:
>
> On Mon, Sep 12, 2016 at 05:58:21PM -0700, Jason Ekstrand wrote:
> > HiZ buffers can be multisampled and, on BDW+, simply using interleaved
>
> As stated in your comment in the second-to-last hunk, this is actually
> true for all platforms pre-SKL
Quoting Jose Fonseca (2016-09-23 11:11:18)
> On 23/09/16 18:26, Dylan Baker wrote:
> > Quoting Jose Fonseca (2016-09-23 05:01:12)
> >> This seems to have broke Windows builds.
> >>
> >> It seems this is not only exporting symbols on GLESv2.so but everywhere.
> >>
> >> It's not obvious how to fix it
1 - 100 of 138 matches
Mail list logo