On Fri, Oct 20, 2017 at 5:34 PM, Dylan Baker wrote:
> Meson 0.43 added the ability to pass nested lists to
> include_directories, so the code that we have works for 0.43, but not
> for 0.42. This patch changes the include_directories list to be flat so
> it works with 0.42
>
> fixes: 108d257a16859
On 10/12/2017 08:38 PM, Jose Maria Casanova Crespo wrote:
> From: Eduardo Lima Mitev
>
> Currently, we use byte-scattered write messages for storing 16-bit
> into an SSBO. This is because untyped surface messages have a fixed
> 32-bit size.
>
> This patch optimizes these 16-bit writes by combini
On 20 October 2017 at 20:34, Dylan Baker wrote:
> Meson 0.43 added the ability to pass nested lists to
> include_directories, so the code that we have works for 0.43, but not
> for 0.42. This patch changes the include_directories list to be flat so
> it works with 0.42
>
> fixes: 108d257a16859898
Fixes: 1bcb953e166 'radv: handle GFX9 1D textures'
---
src/amd/common/ac_nir_to_llvm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 83b49b535c6..473dd67355b 100644
--- a/src/amd/common/ac_nir_to_llvm.
Since it also uses the output vector before writing to memory.
Fixes: e38685cc62e 'Revert "radv: disable support for VEGA for now."'
---
src/amd/vulkan/radv_shader.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
From: Nicolai Hähnle
We only need the lock to guard changes in the variant linked list. The
actual compilation can happen outside the lock, since we use the ready
fence as a guard.
---
src/gallium/drivers/radeonsi/si_state_shaders.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
di
From: Nicolai Hähnle
---
src/util/Makefile.sources | 1 +
src/util/futex.h | 51 +++
src/util/meson.build | 1 +
src/util/simple_mtx.h | 20 +--
4 files changed, 54 insertions(+), 19 deletions(-)
create mode 100644
From: Nicolai Hähnle
---
src/util/u_queue.c | 2 +-
src/util/u_queue.h | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/util/u_queue.c b/src/util/u_queue.c
index 3b05110e9f8..33436e0749a 100644
--- a/src/util/u_queue.c
+++ b/src/util/u_queue.c
@@ -82,21 +82,21 @@ remove_f
Hi all,
Another multi-threading bug I ran into, this time with radeonsi shader
fences.
Patches 1-5 make util_queue_fence more widely usable, and include an
optional futex-based implementation. The patches themselves are on top
of the simple-mutex patches, but could easily be removed to drop the
f
From: Nicolai Hähnle
---
src/util/u_queue.c | 4 +---
src/util/u_queue.h | 13 +
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/util/u_queue.c b/src/util/u_queue.c
index 33436e0749a..2272006042f 100644
--- a/src/util/u_queue.c
+++ b/src/util/u_queue.c
@@ -321,32
From: Nicolai Hähnle
Fences are now 4 bytes instead of 96 bytes (on my 64-bit system).
Signaling a fence is a single atomic operation in the fast case plus a
syscall in the slow case.
Testing if a fence is signaled is the same as before (a simple comparison),
but waiting on a fence is now no mo
From: Nicolai Hähnle
---
src/util/u_queue.h | 19 ++-
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/src/util/u_queue.h b/src/util/u_queue.h
index ff713ae54d6..7a028ef0847 100644
--- a/src/util/u_queue.h
+++ b/src/util/u_queue.h
@@ -47,20 +47,30 @@ extern "C" {
From: Nicolai Hähnle
There's a race condition between si_shader_select_with_key and
si_bind_XX_shader:
Thread 1 Thread 2
si_shader_select_with_key
begin compiling the first
variant
(guarded by sel->mutex)
Hi all,
I sent similar patches around a while ago. After drawoverhead
benchmarks I went back to the drawing board. In the end, the current
approach is quite similar to what I did before, except with an added
"poor man's RCU" that allows the fast path to work without locking.
Please review!
Thanks
From: Nicolai Hähnle
r600 expects the context that created the sampler view to still be alive
(there is a per-context list of sampler views).
svga currently bails when the context of destruction is not the same as
creation.
The GL state tracker, which is the only one that runs into the
multi-co
From: Nicolai Hähnle
Some locking is unfortunately required, because well-formed GL programs
can have multiple threads racing to access the same texture, e.g.: two
threads/contexts rendering from the same texture, or one thread destroying
a context while the other is rendering from or modifying a
From: Nicolai Hähnle
Move the early-out for surface-based textures earlier. This narrows the
scope of the locking added in a follow-up commit.
Fix one remaining case of initializing a surface-based texture
without properly finalizing it.
---
src/mesa/state_tracker/st_cb_texture.c | 16 -
From: Nicolai Hähnle
Schedule one job for every thread, and wait on a barrier inside the job
execution function.
---
src/util/u_queue.c | 35 +++
src/util/u_queue.h | 2 ++
2 files changed, 37 insertions(+)
diff --git a/src/util/u_queue.c b/src/util/u_queue.c
in
From: Nicolai Hähnle
Found by inspection.
---
src/gallium/drivers/radeonsi/si_pipe.c | 4
1 file changed, 4 insertions(+)
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c
b/src/gallium/drivers/radeonsi/si_pipe.c
index 0d2132efb54..34ca2a56be5 100644
--- a/src/gallium/drivers/radeonsi/s
Hi all,
We compile the main shader part of when creating a shader CSO. This
happens asynchronously by default, except for debug contexts due to
the way shader printing works. This is one reason why ddebug doesn't
work with threaded Gallium (because threaded Gallium want to create
shader CSOs from
From: Nicolai Hähnle
---
src/gallium/auxiliary/Makefile.sources | 2 +
src/gallium/auxiliary/meson.build | 2 +
src/gallium/auxiliary/util/u_async_debug.c | 113 +
src/gallium/auxiliary/util/u_async_debug.h | 74 +++
4 files changed,
From: Nicolai Hähnle
The #if guard is probably not 100% equivalent to the previous PIPE_OS
check, but if anything it should be an over-approximation (are there
pthread implementations without barriers?), so people will get either
a good implementation or compile errors that are easy to fix.
---
From: Nicolai Hähnle
---
src/gallium/drivers/radeon/r600_pipe_common.c | 12
src/gallium/drivers/radeon/r600_pipe_common.h | 1 -
src/gallium/drivers/radeonsi/si_compute.c | 6 +++---
src/gallium/drivers/radeonsi/si_pipe.c | 12
src/gallium/drivers/
From: Nicolai Hähnle
With Gallium threaded contexts, creating shader/compute states is
effectively a screen operation, so we should not use context state.
In particular, this allows us to avoid using the context's LLVM
TargetMachine.
This isn't an issue yet because u_threaded_context filters ou
From: Nicolai Hähnle
The driver uses (and must use) the flushed flag of queries as a hint that
it does not have to check for synchronization with currently queued up
commands. Deferred flushes do not actually flush queued up commands, so
we must not set the flushed flag for them.
Found by inspec
From: Nicolai Hähnle
Cc: Jose Fonseca
---
src/gallium/auxiliary/Makefile.sources | 1 -
src/gallium/auxiliary/meson.build | 1 -
src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c | 1 -
src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c | 1 -
src/gallium/a
From: Nicolai Hähnle
---
src/gallium/auxiliary/Makefile.sources | 2 --
src/gallium/auxiliary/gallivm/lp_bld_init.c| 2 +-
src/gallium/auxiliary/hud/hud_cpu.c| 2 +-
src/gallium/auxiliary/hud/hud_cpufreq.c| 2 +-
src/gallium/auxiliary/hud/hud_d
Hi all,
I was chasing an elusive bug that went away with GALLIUM_THREAD=0, so I wanted
to use ddebug with Gallium threads. That required some fixes to how radeonsi
compiles shaders. However, with that fixed, ddebug *also* made the bug go away.
This series does a lot of things, but the overarching
From: Nicolai Hähnle
---
src/gallium/drivers/radeonsi/si_fence.c | 31 ++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/radeonsi/si_fence.c
b/src/gallium/drivers/radeonsi/si_fence.c
index c51efad7106..b7b02b55831 100644
--- a/src/
From: Nicolai Hähnle
Also document some subtleties of pipe_context::flush.
---
src/gallium/docs/source/context.rst | 9 +
src/gallium/include/pipe/p_context.h | 8 +++-
src/gallium/include/pipe/p_defines.h | 2 ++
3 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/ga
From: Nicolai Hähnle
---
src/gallium/auxiliary/util/u_threaded_context.c | 11 +++
1 file changed, 11 insertions(+)
diff --git a/src/gallium/auxiliary/util/u_threaded_context.c
b/src/gallium/auxiliary/util/u_threaded_context.c
index fb4864bcbaa..43f983a1e5a 100644
--- a/src/gallium/aux
From: Nicolai Hähnle
---
src/gallium/drivers/ddebug/dd_draw.c | 25 ++---
1 file changed, 10 insertions(+), 15 deletions(-)
diff --git a/src/gallium/drivers/ddebug/dd_draw.c
b/src/gallium/drivers/ddebug/dd_draw.c
index 99c9c929b2e..a856d0142a1 100644
--- a/src/gallium/drive
From: Nicolai Hähnle
---
src/gallium/drivers/ddebug/dd_draw.c | 8
src/gallium/drivers/ddebug/dd_pipe.h | 2 ++
2 files changed, 10 insertions(+)
diff --git a/src/gallium/drivers/ddebug/dd_draw.c
b/src/gallium/drivers/ddebug/dd_draw.c
index a856d0142a1..182d6f297a1 100644
--- a/src/ga
From: Nicolai Hähnle
---
src/gallium/drivers/ddebug/dd_util.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/ddebug/dd_util.h
b/src/gallium/drivers/ddebug/dd_util.h
index cfc0fb0ccce..bdfb7cc9163 100644
--- a/src/gallium/drivers/ddebug/dd_util.h
+++ b
From: Nicolai Hähnle
These bits are intended to be used by the ddebug hang detection and are
named in analogy to the Vulkan stage bits (and the corresponding Radeon
pipeline event).
Hang detection needs fences on the granularity of individual commands,
which nothing else really covers. The close
From: Nicolai Hähnle
For running post-draw operations inside the driver thread. ddebug will
use it.
---
src/gallium/auxiliary/util/u_threaded_context.c| 46 ++
.../auxiliary/util/u_threaded_context_calls.h | 1 +
src/gallium/include/pipe/p_context.h |
From: Nicolai Hähnle
---
src/gallium/drivers/radeonsi/si_fence.c | 83 -
1 file changed, 82 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/radeonsi/si_fence.c
b/src/gallium/drivers/radeonsi/si_fence.c
index b7b02b55831..bc0ae302945 100644
--- a/sr
From: Nicolai Hähnle
---
src/gallium/auxiliary/util/u_debug.c| 19 +++
src/gallium/auxiliary/util/u_dump.h | 3 ++
src/gallium/auxiliary/util/u_dump_defines.c | 53 +
src/gallium/auxiliary/util/u_dump_state.c | 2 +-
4 files changed, 61 ins
From: Nicolai Hähnle
---
src/gallium/drivers/radeonsi/si_pipe.c | 11 ++-
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c
b/src/gallium/drivers/radeonsi/si_pipe.c
index 19428d8b4e7..c5742cf9883 100644
--- a/src/gallium/drivers/radeons
From: Nicolai Hähnle
---
src/gallium/drivers/radeonsi/si_debug.c | 5 -
src/gallium/drivers/radeonsi/si_hw_context.c | 3 +++
src/gallium/drivers/radeonsi/si_pipe.h | 1 +
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/radeonsi/si_debug.c
b/src/
From: Nicolai Hähnle
This patch has multiple goals:
1. Off-load the writing of records in 'always' mode to another thread
for performance.
2. Allow using ddebug with threaded contexts. This really forces us to
move some of the "after_draw" handling into another thread.
3. Simplify the di
From: Nicolai Hähnle
---
src/gallium/drivers/ddebug/dd_util.h | 30 ++
1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/src/gallium/drivers/ddebug/dd_util.h
b/src/gallium/drivers/ddebug/dd_util.h
index 4e1a945c57d..cfc0fb0ccce 100644
--- a/src/gallium/
From: Nicolai Hähnle
---
src/gallium/auxiliary/util/u_dump.h | 3 +++
src/gallium/auxiliary/util/u_dump_state.c | 10 ++
2 files changed, 13 insertions(+)
diff --git a/src/gallium/auxiliary/util/u_dump.h
b/src/gallium/auxiliary/util/u_dump.h
index ff1325e1147..be9a0fa26d0 100644
From: Nicolai Hähnle
C11 threads were changed to use struct timespec instead of xtime, and
thrd_sleep got a second argument.
See http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1554.htm and
http://en.cppreference.com/w/c/thread/{thrd_sleep,cnd_timedwait,mtx_timedlock}
Note that cnd_timedwait i
From: Nicolai Hähnle
---
src/util/futex.h | 9 --
src/util/simple_mtx.h | 2 +-
src/util/u_queue.c| 77 ++-
src/util/u_queue.h| 51 ++
4 files changed, 116 insertions(+), 23 deletions(-)
diff --gi
From: Nicolai Hähnle
Queries should still get marked as flushed when flushes are executed
asynchronously in the driver thread.
To this end, the management of the unflushed_queries list is moved into
the driver thread.
---
src/gallium/auxiliary/util/u_threaded_context.c | 65 ++--
From: Nicolai Hähnle
Change format to %p while we're at it.
---
src/gallium/auxiliary/util/u_dump.h | 3 +++
src/gallium/auxiliary/util/u_dump_state.c | 4 ++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/gallium/auxiliary/util/u_dump.h
b/src/gallium/auxiliary/util/
From: Nicolai Hähnle
Transfer commands can have associated GPU operations.
Enabled by passing GALLIUM_DDEBUG=transfers.
---
src/gallium/drivers/ddebug/dd_context.c | 65 -
src/gallium/drivers/ddebug/dd_draw.c| 234
src/gallium/drivers/ddebug/dd_pipe
From: Nicolai Hähnle
This requires out-of-band creation of fences, and will be signaled to
the pipe_context::flush implementation by a special TC_FLUSH_ASYNC flag.
---
src/gallium/auxiliary/util/u_threaded_context.c| 96 +-
src/gallium/auxiliary/util/u_threaded_context.h
From: Nicolai Hähnle
---
src/gallium/drivers/radeon/r600_pipe_common.c | 267 --
src/gallium/drivers/radeonsi/Makefile.sources | 1 +
src/gallium/drivers/radeonsi/meson.build | 1 +
src/gallium/drivers/radeonsi/si_fence.c | 304 ++
src/g
From: Nicolai Hähnle
Fixes non-deterministic failures in
dEQP-EGL.functional.sharing.gles2.multithread.simple_egl_sync.images.texture_source.teximage2d_render
and others in dEQP-EGL.functional.sharing.gles2.multithread.*
---
src/mesa/main/texobj.c | 5 +
1 file changed, 5 insertions(+)
diff
From: Nicolai Hähnle
---
src/mesa/state_tracker/st_cb_flush.c | 4 ++--
src/mesa/state_tracker/st_cb_syncobj.c | 26 --
2 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/src/mesa/state_tracker/st_cb_flush.c
b/src/mesa/state_tracker/st_cb_flush.c
index c8
Hi all,
Two bugs that I noticed are fixed in patches #1 and #5.
Patch #2 and #4 are mostly cleanups.
Patch #3 enables asynchronous Gallium flushes in st/mesa. Section 5.3.1
(Determining Completion of Changes to an object) states that:
"The contents of an object T are considered to have been
From: Nicolai Hähnle
st_flush should flush state tracker-internal state and the pipe, but
not mesa/main state. Of the four callers:
- glFlush/glFinish already call FLUSH_{VERTICES,STATE}.
- st_vdpau doesn't need to call them.
- st_manager will now call them explicitly.
---
src/mesa/state_tracke
From: Nicolai Hähnle
There may be pending operations (e.g. vertices) that need to be flushed
by the state tracker.
Found by inspection.
---
src/gallium/state_trackers/dri/dri_helpers.c | 11 ++-
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/gallium/state_trackers/dri
From: Nicolai Hähnle
The current value was introduced in commit a27180d0d8666, which claims
that it represents ~1.11 years. However, it is interpreted in nanoseconds,
so it actually only represents ~9.8 hours. That seems a bit short.
Use the largest value consistent with both int32 and int64. It
If the i965 gen program cannot be loaded from the cache, then we
fallback to using a serialized nir program.
This is based on "i965: add cache fallback support" by Timothy Arceri
. Tim's version was written to fallback
to compiling from source, and therefore had to be much more complex.
After Conn
This would cause the read of the metadata content to fail, which would
prevent the linking from being skipped.
Seen on Rocket League with i965 shader cache.
Cc: Timothy Arceri
Signed-off-by: Jordan Justen
Reviewed-by: Timothy Arceri
---
src/util/disk_cache.c | 2 +-
1 file changed, 1 insertio
git://people.freedesktop.org/~jljusten/mesa i965-shader-cache-v3
The series adds support for a disk shader cache for i965, but it does
not enable it by default. To enable the i965 shader cache you need to
set the environment variable MESA_GLSL_CACHE_DISABLE=0.
v3:
* Reworks suggested by Jason:
From: Connor Abbott
v2 (Jason Ekstrand):
- Various whitespace cleanups
- Add helpers for reading/writing objects
- Rework derefs
- [de]serialize nir_shader::num_*
- Fix uses of blob_reserve_bytes
- Use a bitfield struct for packing tex_instr data
v3:
- Zero nir_variable struct on deserial
Signed-off-by: Jordan Justen
---
src/intel/compiler/brw_compiler.h | 18 ++
1 file changed, 18 insertions(+)
diff --git a/src/intel/compiler/brw_compiler.h
b/src/intel/compiler/brw_compiler.h
index 701b4a80bf1..9359b767e35 100644
--- a/src/intel/compiler/brw_compiler.h
+++ b/src
Signed-off-by: Jordan Justen
Reviewed-by: Timothy Arceri
Reviewed-by: Kenneth Graunke
---
src/compiler/nir/nir_lower_system_values.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/compiler/nir/nir_lower_system_values.c
b/src/compiler/nir/nir_lower_system_values.c
index ba20d3083f1..39
From: Connor Abbott
Not sure if this is the best place to put it, but we're going to need
this for NIR too.
Reviewed-by: Timothy Arceri
Reviewed-by: Jordan Justen
---
src/compiler/glsl/shader_cache.cpp | 171 -
src/compiler/glsl_types.cpp| 171 +
From: Jason Ekstrand
Reviewed-by: Timothy Arceri
Reviewed-by: Jordan Justen
---
src/compiler/nir/nir.h | 17 +
src/compiler/nir/nir_serialize.c | 19 +++
2 files changed, 36 insertions(+)
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
in
From: Timothy Arceri
This will be used to disable the shader cache when xfb is enabled
via the api as we don't currently allow for it when generating the
sha for the shader.
---
src/compiler/glsl/link_varyings.cpp | 5 -
src/mesa/main/mtypes.h | 3 +++
2 files changed, 7 inserti
Signed-off-by: Jordan Justen
Reviewed-by: Timothy Arceri
Reviewed-by: Kenneth Graunke
---
src/compiler/nir/nir.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c
index fe484516947..7380bf436a8 100644
--- a/src/compiler/nir/nir.c
Signed-off-by: Jordan Justen
Reviewed-by: Timothy Arceri
Reviewed-by: Kenneth Graunke
---
src/intel/compiler/brw_nir_lower_cs_intrinsics.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/intel/compiler/brw_nir_lower_cs_intrinsics.c
b/src/intel/compiler/brw_nir_lower_cs_intrinsics.c
ind
From: Jason Ekstrand
Cc: mesa-sta...@lists.freedesktop.org
Reviewed-by: Timothy Arceri
Reviewed-by: Kenneth Graunke
Reviewed-by: Jordan Justen
---
src/compiler/nir/nir_intrinsics.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/compiler/nir/nir_intrinsics.h
b/src/com
Signed-off-by: Jordan Justen
Reviewed-by: Timothy Arceri
Reviewed-by: Kenneth Graunke
---
src/compiler/glsl/glsl_to_nir.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/compiler/glsl/glsl_to_nir.cpp
b/src/compiler/glsl/glsl_to_nir.cpp
index 63694fd41f4..1d1085ffbcf 1
From: Timothy Arceri
v2:
* Use MAYBE_UNUSED. (Matt)
[jordan.l.jus...@intel.com: *_cached_program => brw_disk_cache_*_program]
Signed-off-by: Jordan Justen
---
src/mesa/drivers/dri/i965/brw_disk_cache.c | 23 +++
src/mesa/drivers/dri/i965/brw_gs.c | 22 +
From: Timothy Arceri
This enables the cache on vertex and fragment shaders only.
v2:
* Use MAYBE_UNUSED. (Matt)
[jordan.l.jus...@intel.com: reword subject]
[jordan.l.jus...@intel.com: *_cached_program => brw_disk_cache_*_program]
Signed-off-by: Jordan Justen
---
src/mesa/drivers/dri/i965/brw
Signed-off-by: Jordan Justen
---
src/intel/compiler/brw_compiler.c | 36
src/intel/compiler/brw_compiler.h | 6 ++
2 files changed, 42 insertions(+)
diff --git a/src/intel/compiler/brw_compiler.c
b/src/intel/compiler/brw_compiler.c
index 2f6af7d2c3f..33
From: Timothy Arceri
v2:
* Use MAYBE_UNUSED. (Matt)
[jordan.l.jus...@intel.com: *_cached_program => brw_disk_cache_*_program]
Signed-off-by: Jordan Justen
---
src/mesa/drivers/dri/i965/brw_disk_cache.c | 45 ++
src/mesa/drivers/dri/i965/brw_tcs.c| 23 ++
The caller can now use brw_stage_prog_data::program_size which is set
by the brw_compile_* functions.
Cc: Jason Ekstrand
Signed-off-by: Jordan Justen
---
src/intel/blorp/blorp.c | 10 --
src/intel/blorp/blorp_blit.c| 5 ++---
src/intel/blorp/blorp_clear.c | 15
Signed-off-by: Jordan Justen
Cc: Timothy Arceri
---
src/mesa/drivers/dri/i965/brw_link.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp
b/src/mesa/drivers/dri/i965/brw_link.cpp
index 988dd3a73d7..9019db56aa0 100644
--- a/src/mesa/drivers/dri/i965
Signed-off-by: Jordan Justen
---
src/compiler/blob.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/compiler/blob.c b/src/compiler/blob.c
index 8dd254fefc6..5e8671b7b44 100644
--- a/src/compiler/blob.c
+++ b/src/compiler/blob.c
@@ -256,7 +256,7 @@ ensure_can_read(struct b
Signed-off-by: Jordan Justen
Reviewed-by: Timothy Arceri
Reviewed-by: Kenneth Graunke
---
src/compiler/glsl/glsl_to_nir.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/compiler/glsl/glsl_to_nir.cpp
b/src/compiler/glsl/glsl_to_nir.cpp
index 1d1085ffbcf..c659a25ca77 1
From: Jason Ekstrand
Reviewed-by: Timothy Arceri
Reviewed-by: Jordan Justen
---
src/compiler/glsl_types.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/compiler/glsl_types.cpp b/src/compiler/glsl_types.cpp
index a7fc7ff7f6b..704b63c5cf2 100644
--- a/src/compiler/glsl_types.cpp
+
When a program is restored from the shader cache, prog->nir will be
NULL, but prog->info will be restored.
Signed-off-by: Jordan Justen
---
src/mesa/drivers/dri/i965/brw_wm.c | 4 ++--
src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 12 ++--
2 files changed, 8 insertion
From: Timothy Arceri
This uses the recently-added disk_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 Worth.
v2:
* Squash 'i965: add image param shader cache support'
* Squash 'i965: add shader ca
This helps valgrind when encode_type_to_blob is used.
Signed-off-by: Jordan Justen
Reviewed-by: Kenneth Graunke
---
src/compiler/glsl_types.h | 7 +++
1 file changed, 7 insertions(+)
diff --git a/src/compiler/glsl_types.h b/src/compiler/glsl_types.h
index b5e97e638ba..0b4a66ca4d2 100644
--
Cc: Dylan Baker
Signed-off-by: Jordan Justen
---
src/mesa/drivers/dri/Makefile.am | 1 +
src/mesa/drivers/dri/meson.build | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/Makefile.am b/src/mesa/drivers/dri/Makefile.am
index 95c637d0cdd..5cb2127501e 10064
Double negative FTW!
For now, the shader cache is disabled by default on i965 to allow us
to verify its stability.
In other words, to enable the shader cache on i965, set
MESA_GLSL_CACHE_DISABLE to false or 0. If the variable is unset, then
the shader cache will be disabled.
We use the build-id
From: Timothy Arceri
For now this disables the shader cache when transform feedback is
enabled via the GL API as we don't currently allow for it when
generating the sha for the shader.
---
src/mesa/drivers/dri/i965/brw_disk_cache.c | 8
1 file changed, 8 insertions(+)
diff --git a/src/
v2:
* Use MAYBE_UNUSED. (Matt)
Signed-off-by: Jordan Justen
Reviewed-by: Timothy Arceri
---
src/mesa/drivers/dri/i965/brw_cs.c | 24
src/mesa/drivers/dri/i965/brw_cs.h | 3 +++
src/mesa/drivers/dri/i965/brw_disk_cache.c | 34 +
These fields can be used to optionally save off a driver blob with the
program metadata. For example, serialized nir, or tgsi.
v3:
* Rename serialized_nir* to driver_cache_blob*. (Tim)
* Free memory. (Jason)
Signed-off-by: Jordan Justen
Reviewed-by: Timothy Arceri
---
src/mesa/main/mtypes.h
If the shader cache is enabled, after linking the program, we
serialize the program to nir. This will be saved out by the glsl
shader cache support.
Later, if the same program is found in the cache, we can use the nir
for a fallback in the unlikely case that the gen binary program is not
found in
Signed-off-by: Jordan Justen
Reviewed-by: Timothy Arceri
---
src/mesa/drivers/dri/i965/brw_context.c | 4
src/mesa/drivers/dri/i965/brw_context.h | 1 +
2 files changed, 5 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_context.c
b/src/mesa/drivers/dri/i965/brw_context.c
index c8
From: Carl Worth
This will be used by the on disk shader cache.
v2:
* Set in brw_compile_* rather than brw_codegen_*. (Jason)
Signed-off-by: Timothy Arceri
[jordan.l.jus...@intel.com: Only add to brw_stage_prog_data]
Signed-off-by: Jordan Justen
---
src/intel/compiler/brw_compiler.h
v3:
* Rename serialized_nir* to driver_cache_blob*. (Tim)
Signed-off-by: Jordan Justen
Reviewed-by: Timothy Arceri
---
src/compiler/glsl/shader_cache.cpp | 16
1 file changed, 16 insertions(+)
diff --git a/src/compiler/glsl/shader_cache.cpp
b/src/compiler/glsl/shader_cache.c
Fixes many GL 4.5 CTS blend tests, such as:
* GL45-CTS.blend_equation_advanced.extension_directive_enable
* GL45-CTS.blend_equation_advanced.extension_directive_warn
* GL45-CTS.blend_equation_advanced.blend_all.GL_MULTIPLY_KHR_all_qualifier
* GL45-CTS.blend_equation_advanced.blend_specific.GL_COLO
From: Dave Airlie
Otherwise we just need to write them to the tf ring.
this seems to improve the tessellation demo on Bonarie
~2190->~2230 fps
Signed-off-by: Dave Airlie
---
src/amd/common/ac_nir_to_llvm.c | 4 ++--
src/amd/common/ac_nir_to_llvm.h | 1 +
src/amd/vulkan/radv_pipeline.c | 1 +
Looks like this patch regressed
GL45-CTS.multi_bind.dispatch_bind_buffers_base.
On 15.09.2017 05:57, Dave Airlie wrote:
From: Dave Airlie
These paths are again 90% the same, consolidate them into
one.
Signed-off-by: Dave Airlie
---
src/mesa/main/bufferobj.c | 76 ++
r-b
(though I suppose now that we have linking, we should probably rework
keys too, since we'll have lots of pre-ac info to pass along that are
not needed for the cache hashing.)
On Sun, Oct 22, 2017 at 10:59 PM, Dave Airlie wrote:
> From: Dave Airlie
>
> Otherwise we just need to write them to
From: Marek Olšák
See my LLVM patch which fixes the root cause.
Users have to apply this patch and then they have 2 choices:
- Downgrade to LLVM 5.0
- Update to LLVM git after my LLVM patch is pushed.
It won't be possible to use current and earlier development version
of LLVM 6.0.
---
src/gall
There are two issues with the current implementation. First, it relies
on the layout(local_size_*) happening in the same shader as the main
function, and secondly it doesn't work for variable group sizes.
In both cases, the simplest fix is to move the setup of these derived
values to a later time,
From: Jan Vesely
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103388
Signed-off-by: Jan Vesely
---
Hi,
this is an alternative to Vedran's approach. it hides the logic behind a compat
function.
Jan
src/gallium/state_trackers/clover/llvm/codegen/common.cpp | 3 +--
src/gallium/stat
Reviewed-by: Timothy Arceri
On 23/10/17 03:43, Bas Nieuwenhuizen wrote:
Since it also uses the output vector before writing to memory.
Fixes: e38685cc62e 'Revert "radv: disable support for VEGA for now."'
---
src/amd/vulkan/radv_shader.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions
On Sunday, October 22, 2017 12:18:11 PM PDT Nicolai Hähnle wrote:
> From: Nicolai Hähnle
>
> The current value was introduced in commit a27180d0d8666, which claims
> that it represents ~1.11 years. However, it is interpreted in nanoseconds,
> so it actually only represents ~9.8 hours. That seems
Am 17.10.2017 16:49, schrieb Andy Furniss:
Emil Velikov wrote:
On 17 October 2017 at 13:40, Emil Velikov
wrote:
With both:
-DLLVM_BUILD_LLVM_DYLIB=ON and -DLLVM_LINK_LLVM_DYLIB=ON
Something's a bit strange:
... setting -DLLVM_LINK_LLVM_DYLIB=ON should also set
-DLLVM_BUILD_LLVM_DYLIB=ON
1 - 100 of 117 matches
Mail list logo