Re: [Mesa-dev] [Intel-gfx] [RFC 1/2] drm/i915: Engine discovery uAPI

2017-04-24 Thread Tvrtko Ursulin
On 18/04/2017 21:13, Chris Wilson wrote: On Tue, Apr 18, 2017 at 05:56:14PM +0100, Tvrtko Ursulin wrote: +enum drm_i915_gem_engine_class { + DRM_I915_ENGINE_CLASS_OTHER = 0, + DRM_I915_ENGINE_CLASS_RENDER = 1, + DRM_I915_ENGINE_CLASS_COPY = 2, + DRM_I915_ENGINE_CLASS_VID

Re: [Mesa-dev] [Intel-gfx] [RFC 1/2] drm/i915: Engine discovery uAPI

2017-04-24 Thread Tvrtko Ursulin
On 19/04/2017 06:22, Kenneth Graunke wrote: On Tuesday, April 18, 2017 9:56:14 AM PDT Tvrtko Ursulin wrote: From: Tvrtko Ursulin Engine discovery uAPI allows userspace to probe for engine configuration and features without needing to maintain the internal PCI id based database. I don't unde

Re: [Mesa-dev] [Intel-gfx] [RFC 2/2] drm/i915: Select engines via class and instance in execbuffer2

2017-04-24 Thread Tvrtko Ursulin
On 18/04/2017 22:10, Chris Wilson wrote: On Tue, Apr 18, 2017 at 05:56:15PM +0100, Tvrtko Ursulin wrote: From: Tvrtko Ursulin Building on top of the previous patch which exported the concept of engine classes and instances, we can also use this instead of the current awkward engine selection

[Mesa-dev] [PATCH 03/61] radeonsi/gfx9: fix 1D array shader images

2017-04-24 Thread Marek Olšák
From: Marek Olšák Cc: 17.1 --- src/gallium/drivers/radeonsi/si_shader.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 5d7175d..c5c994d 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src

[Mesa-dev] [PATCH 01/61] radeonsi/gfx9: fix texture buffer objects and image buffers with IDXEN==0

2017-04-24 Thread Marek Olšák
From: Marek Olšák Cc: 17.1 --- src/gallium/drivers/radeonsi/si_state.c | 35 - 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index a55f024..8a8705f 100644 --- a/src

[Mesa-dev] [PATCH 02/61] radeonsi/gfx9: fix most things wrong with shader images

2017-04-24 Thread Marek Olšák
From: Marek Olšák There are 2 major hw changes: - The address must always point to the address of level 0. GFX9 tiling modes don't allow binding to a non-0 level. - 3D must always be bound as 3D, because 2D and 3D use entirely different tiling modes, and the texture target determines which se

[Mesa-dev] [PATCH 00/61] OpenGL 4.5 for Vega and other stuff

2017-04-24 Thread Marek Olšák
Hi, This series contains multiple different things, but the commit order is mostly fixed, so the review order is also fixed, and hopefully having just one series will help with navigation. Patches 1-7 are mostly GFX9 fixes for stable. Patches 8-13 are cleanups before adding LS-HS support. Patch

[Mesa-dev] [PATCH 05/61] radeonsi/gfx9: set MAX_PRIMGRP_IN_WAVE in the correct register

2017-04-24 Thread Marek Olšák
From: Marek Olšák Cc: 17.1 --- src/gallium/drivers/radeonsi/si_state_draw.c| 3 ++- src/gallium/drivers/radeonsi/si_state_shaders.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_dr

[Mesa-dev] [PATCH 07/61] radeonsi: adjust ESGS ring buffer size computation on VI

2017-04-24 Thread Marek Olšák
From: Marek Olšák Cc: 17.0 17.1 --- src/gallium/drivers/radeonsi/si_state_shaders.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index 34cd6d4..3a604eb 100644 --- a/src/

[Mesa-dev] [PATCH 06/61] radeonsi/gfx9: don't set deprecated field PARTIAL_ES_WAVE_ON

2017-04-24 Thread Marek Olšák
From: Marek Olšák Cc: 17.1 --- src/gallium/drivers/radeonsi/si_state_draw.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index 193187b..a354c69 100644 --- a/src/gallium/drive

[Mesa-dev] [PATCH 09/61] radeonsi: separate out TGSI initialization of si_shader_context

2017-04-24 Thread Marek Olšák
From: Marek Olšák so that we can put multiple different TGSI shaders into one module. --- src/gallium/drivers/radeonsi/si_shader.c | 15 ++-- src/gallium/drivers/radeonsi/si_shader_internal.h | 7 +- .../drivers/radeonsi/si_shader_tgsi_setup.c| 93 ++ 3 fi

[Mesa-dev] [PATCH 12/61] radeonsi: separate out VS prolog key generation

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_state_shaders.c | 31 - 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index 8afc731..2bcde31 100644 -

[Mesa-dev] [PATCH 11/61] radeonsi: separate out VS prolog key printing

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 48 +++- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index fced3c6..00aabc9 100644 --- a/src/galli

[Mesa-dev] [PATCH 08/61] radeonsi: turn si_shader_key::mono into a non-union

2017-04-24 Thread Marek Olšák
From: Marek Olšák A merged LS-HS shader needs both fix_fetch and inputs_to_copy for compilation. --- src/gallium/drivers/radeonsi/si_shader.c| 10 +- src/gallium/drivers/radeonsi/si_shader.h| 12 src/gallium/drivers/radeonsi/si_state_shaders.c | 4 ++-- 3 fi

[Mesa-dev] [PATCH 04/61] radeonsi/gfx9: add a workaround for viewing a slice of 3D as a 2D image

2017-04-24 Thread Marek Olšák
From: Marek Olšák Cc: 17.1 --- src/gallium/drivers/radeonsi/si_shader.c | 28 +--- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index c5c994d..840742c 100644 --- a/src/

[Mesa-dev] [PATCH 16/61] radeonsi/gfx9: add si_shader::previous_stage for merged shaders

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_debug.c | 4 src/gallium/drivers/radeonsi/si_shader.c | 35 +++- src/gallium/drivers/radeonsi/si_shader.h | 1 + 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/s

[Mesa-dev] [PATCH 15/61] radeonsi/gfx9: enlarge num_input_sgprs in shader keys due to higher hw limit

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index 6d0ac66..582c427 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h

[Mesa-dev] [PATCH 13/61] radeonsi: adjust the signature of si_get_vs_prolog_key

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 29 - 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 00aabc9..f6cd313 100644 --- a/src/gallium/d

[Mesa-dev] [PATCH 31/61] radeonsi: add si_shader::prolog2

2017-04-24 Thread Marek Olšák
From: Marek Olšák For a GS prolog in merged ES-GS. --- src/gallium/drivers/radeonsi/si_debug.c | 4 src/gallium/drivers/radeonsi/si_shader.c | 21 - src/gallium/drivers/radeonsi/si_shader.h | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/gall

[Mesa-dev] [PATCH 22/61] radeonsi/gfx9: define LS-HS main shader function prototype

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 185 --- 1 file changed, 147 insertions(+), 38 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index fbeb265..8b21ff7 100644 --- a/src/gall

[Mesa-dev] [PATCH 28/61] radeonsi/gfx9: set EXEC for non-mono merged shaders, add a barrier between them

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 43 ++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 4bdbe2f..823 100644 --- a/src/galliu

[Mesa-dev] [PATCH 26/61] radeonsi/gfx9: pass inputs from LS to TCS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 68 ++- src/gallium/drivers/radeonsi/si_shader_internal.h | 3 + 2 files changed, 69 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi

[Mesa-dev] [PATCH 17/61] radeonsi: separate out code for selecting the VS prolog

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 46 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index ffec302..bc1d5a4 100644 --- a/src/galli

[Mesa-dev] [PATCH 30/61] radeonsi/gfx9: move RW_BUFFERS to s[0:1] for merged shaders

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_descriptors.c | 13 src/gallium/drivers/radeonsi/si_shader.c | 29 +++ src/gallium/drivers/radeonsi/si_shader.h | 3 +++ 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/gall

[Mesa-dev] [PATCH 23/61] radeonsi/gfx9: merged shaders have scratch offset at the beginning

2017-04-24 Thread Marek Olšák
From: Marek Olšák also, screen wasn't initialized for compute shaders --- src/gallium/drivers/radeonsi/si_compute.c | 1 + src/gallium/drivers/radeonsi/si_shader.c | 13 - 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/sr

[Mesa-dev] [PATCH 25/61] radeonsi/gfx9: add TCS epilog support for merged LS-HS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 110 +-- 1 file changed, 76 insertions(+), 34 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index f0e3f0c..907bc9c 100644 --- a/src/galli

[Mesa-dev] [PATCH 33/61] radeonsi: simplify some shader type conditions

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 8 ++-- 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 20cb477..2b25a32 100644 --- a/src/gallium/drivers/radeonsi/si_shad

[Mesa-dev] [PATCH 19/61] radeonsi/gfx9: set up shader registers for merged LS-HS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_pipe.h | 3 ++- src/gallium/drivers/radeonsi/si_state_draw.c| 31 - src/gallium/drivers/radeonsi/si_state_shaders.c | 36 - 3 files changed, 55 insertions(+), 15 deletions(-) diff --g

[Mesa-dev] [PATCH 10/61] radeonsi: code shuffling in si_emit_derived_tess_state

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_state_draw.c | 69 +++- 1 file changed, 38 insertions(+), 31 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index a354c69..c24d607 100644 --- a/s

[Mesa-dev] [PATCH 40/61] radeonsi/gfx9: store ES outputs to LDS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 21 + 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 03fa30c..356776a 100644 --- a/src/gallium/drivers/r

[Mesa-dev] [PATCH 37/61] radeonsi/gfx9: add the function signature of merged ES-GS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 69 +-- src/gallium/drivers/radeonsi/si_shader_internal.h | 17 +++--- 2 files changed, 74 insertions(+), 12 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/ra

[Mesa-dev] [PATCH 21/61] radeonsi: assign VS/TCS/TES/GS shader input parameter locations dynamically

2017-04-24 Thread Marek Olšák
From: Marek Olšák They will vary with merged stages. --- src/gallium/drivers/radeonsi/si_shader.c | 254 +++--- src/gallium/drivers/radeonsi/si_shader.h | 60 + src/gallium/drivers/radeonsi/si_shader_internal.h | 69 +- 3 files changed, 190 insertions(

[Mesa-dev] [PATCH 24/61] radeonsi/gfx9: add VS prolog support for merged LS-HS

2017-04-24 Thread Marek Olšák
From: Marek Olšák HS input VGPRs must be reserved. --- src/gallium/drivers/radeonsi/si_shader.c | 29 +++-- src/gallium/drivers/radeonsi/si_shader.h | 2 ++ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/g

[Mesa-dev] [PATCH 39/61] radeonsi/gfx9: load GS inputs from LDS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 45 +++- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 0d94bdd..03fa30c 100644 --- a/src/galliu

[Mesa-dev] [PATCH 42/61] radeonsi/gfx9: add VS prolog support for merged ES-GS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 3896b65..a4c2ac0 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium

[Mesa-dev] [PATCH 27/61] radeonsi/gfx9: don't store the HS control word

2017-04-24 Thread Marek Olšák
From: Marek Olšák GFX9 doesn't have it. --- src/gallium/drivers/radeonsi/si_shader.c | 19 --- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 1df9614..4bdbe2f 100644 --- a/s

[Mesa-dev] [PATCH 20/61] radeonsi/gfx9: define and set LS-HS user SGPRs

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_descriptors.c | 20 + src/gallium/drivers/radeonsi/si_shader.c| 10 - src/gallium/drivers/radeonsi/si_shader.h| 30 +++-- src/gallium/drivers/radeonsi/si_state_draw.c| 12 +

[Mesa-dev] [PATCH 29/61] radeonsi/gfx9: add support for monolithic merged LS-HS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 143 +++ src/gallium/drivers/radeonsi/si_shader.h | 2 + 2 files changed, 128 insertions(+), 17 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_sh

[Mesa-dev] [PATCH 32/61] radeonsi: rename the swizzle parameter of lds_store

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 27cd0f2..20cb477 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c

[Mesa-dev] [PATCH 34/61] radeonsi: rename declare_tess_lds -> declare_lds_as_pointer

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 2b25a32..752f819 100644 --- a/src/gallium/drivers/radeonsi/si_shad

[Mesa-dev] [PATCH 47/61] radeonsi/gfx9: always compile monolithic ES-GS (asynchronously)

2017-04-24 Thread Marek Olšák
From: Marek Olšák In addition to the non-monolithic variant. --- src/gallium/drivers/radeonsi/si_shader.h| 10 +- src/gallium/drivers/radeonsi/si_state_shaders.c | 19 +++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/

[Mesa-dev] [PATCH 43/61] radeonsi/gfx9: add GS prolog support for merged ES-GS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 87 +--- 1 file changed, 70 insertions(+), 17 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index a4c2ac0..392f85d 100644 --- a/src/galli

[Mesa-dev] [PATCH 46/61] radeonsi/gfx9: add support for monolithic ES-GS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 79 src/gallium/drivers/radeonsi/si_shader.h | 2 + 2 files changed, 72 insertions(+), 9 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shade

[Mesa-dev] [PATCH 53/61] radeonsi/gfx9: enable OpenGL 4.5

2017-04-24 Thread Marek Olšák
From: Marek Olšák Tentatively enable it, expecting the scratch buffer support to be done before the next Mesa release. --- src/gallium/drivers/radeonsi/si_pipe.c | 5 - 1 file changed, 5 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe

[Mesa-dev] [PATCH 52/61] radeonsi/gfx9: 2nd shader of merged shaders should hold a reference of the 1st

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.h| 1 + src/gallium/drivers/radeonsi/si_state_shaders.c | 35 ++--- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/

[Mesa-dev] [PATCH 48/61] radeonsi/gfx9: disallow scratch buffer for LS-HS and ES-GS

2017-04-24 Thread Marek Olšák
From: Marek Olšák not implemented yet --- src/gallium/drivers/radeonsi/si_state_shaders.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index 22bf3cf..67e650d 100644 --- a/src/gal

[Mesa-dev] [PATCH 38/61] radeonsi/gfx9: get GS wave ID from the correct input

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 14 +++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 5e1f59c..0d94bdd 100644 --- a/src/gallium/drivers/radeonsi

[Mesa-dev] [PATCH 35/61] radeonsi/gfx9: add GS user SGPRs

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_descriptors.c | 15 +++ src/gallium/drivers/radeonsi/si_shader.c| 2 +- src/gallium/drivers/radeonsi/si_shader.h| 13 - src/gallium/drivers/radeonsi/si_state_shaders.c | 2 +- 4 files changed, 25 in

[Mesa-dev] [PATCH 61/61] radeonsi: tell LLVM not to remove s_barrier instructions

2017-04-24 Thread Marek Olšák
From: Marek Olšák LLVM 5.0 removes s_barrier instructions if the max-work-group-size attribute is not set. What a surprise. --- src/gallium/drivers/radeonsi/si_shader.c | 45 +++- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/src/gallium/drivers/rade

[Mesa-dev] [PATCH 57/61] radeonsi: remove VS epilog code, compile VS with PrimID export on demand

2017-04-24 Thread Marek Olšák
From: Marek Olšák The use of PrimID in the pixel shader is too rare to deserve such a sizable support code. The initial idea of the VS epilog was to move the clipping code there and remove it based on states, but optimized variants are now used to do that and are easier to support, so the VS epi

[Mesa-dev] [PATCH 41/61] radeonsi/gfx9: pass GS input SGPRs and VGPRs from the ES part to GS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 32 1 file changed, 32 insertions(+) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 356776a..3896b65 100644 --- a/src/gallium/drivers/radeon

[Mesa-dev] [PATCH 51/61] radeonsi: add reference counting for shader selectors

2017-04-24 Thread Marek Olšák
From: Marek Olšák The 2nd shader of merged shaders should take a reference of the 1st shader. The next commit will do that. --- src/gallium/drivers/radeonsi/si_shader.h| 1 + src/gallium/drivers/radeonsi/si_state_shaders.c | 27 ++--- 2 files changed, 25 insertions(+

[Mesa-dev] [PATCH 55/61] radeonsi: don't load PrimID in TES if it's not used

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_state_shaders.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index 94fc0e4..5bbc037 100644 --- a/src/gallium/drive

[Mesa-dev] [PATCH 36/61] radeonsi/gfx9: set registers and shader key for merged ES-GS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c| 8 + src/gallium/drivers/radeonsi/si_shader.h| 2 + src/gallium/drivers/radeonsi/si_state.c | 22 +-- src/gallium/drivers/radeonsi/si_state_draw.c| 3 +- src/gallium/drivers/radeonsi/si_state_shade

[Mesa-dev] [PATCH 49/61] radeonsi/gfx9: set TES registers for merged ES-GS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_state_shaders.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index 67e650d..acba3ae 100644 --- a/src/gallium

[Mesa-dev] [PATCH 50/61] radeonsi/gfx9: set VGT_VERTEX_REUSE for ES in ES-GS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_state_shaders.c | 18 -- 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index acba3ae..d496d4a 100644 --- a/src

[Mesa-dev] [PATCH 59/61] radeonsi: pass tessellation ring addresses via user SGPRs

2017-04-24 Thread Marek Olšák
From: Marek Olšák This removes s_load_dword latency for tess rings. We need just 1 SGPR for the address if we use 64K alignment. The final asm for recreating the descriptor is: // s2 is (address >> 16) s_mov_b32 s3, 0 s_lshl_b64 s[4:5], s[2:3], 16 s_mov_b32 s6, -1 s_mov_b32

[Mesa-dev] [PATCH 56/61] radeonsi: get InstanceID from VGPR1 (or VGPR2 for tess) instead of VGPR3

2017-04-24 Thread Marek Olšák
From: Marek Olšák VGPR1 = InstanceID / StepRate0; // StepRate0 can be set to 1 --- src/gallium/drivers/radeonsi/si_shader.c| 20 ++-- src/gallium/drivers/radeonsi/si_shader.h| 1 + src/gallium/drivers/radeonsi/si_state.c | 1 + src/gallium/drivers/radeon

[Mesa-dev] [PATCH 54/61] radeonsi: explain (non-)monolithic shaders

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.h | 67 1 file changed, 67 insertions(+) diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index 5b665b5..57685e0 100644 --- a/src/gallium/drivers/radeon

[Mesa-dev] [PATCH 18/61] radeonsi/gfx9: add initial code generation for non-monolithic merged LS-HS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c| 16 +++- src/gallium/drivers/radeonsi/si_shader.h| 2 ++ src/gallium/drivers/radeonsi/si_state_shaders.c | 6 ++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/ra

[Mesa-dev] [PATCH 58/61] radeonsi: use si_insert_input_ret in si_llvm_emit_tcs_epilogue

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 29 ++--- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 13cbd0a..974be02 100644 --- a/src/gallium/

[Mesa-dev] [PATCH 44/61] radeonsi/gfx9: select shader parts for non-monolithic ES-GS

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 17 ++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 392f85d..aa19e16 100644 --- a/src/gallium/drivers/radeo

[Mesa-dev] [PATCH 14/61] radeonsi/gfx9: update the summary of shader stage configs

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.h | 13 + 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index 05c0e62..6d0ac66 100644 --- a/src/gallium/drivers/radeonsi/s

[Mesa-dev] [PATCH 60/61] radeonsi: fix tess offchip offset for per-patch attributes

2017-04-24 Thread Marek Olšák
From: Marek Olšák We need 4 more bits there. I don't know what is fixed by this. --- src/gallium/drivers/radeonsi/si_shader.c | 8 src/gallium/drivers/radeonsi/si_shader_internal.h | 17 +++-- src/gallium/drivers/radeonsi/si_state_draw.c | 5 +++-- 3 files ch

[Mesa-dev] [PATCH 45/61] radeonsi/gfx9: make sure the 1st shader's main part exists for merged shaders

2017-04-24 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeonsi/si_state_shaders.c | 78 +++-- 1 file changed, 60 insertions(+), 18 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index b35bdfa..6bb3f50 100644 -

Re: [Mesa-dev] [RFC 4/4] nvc0: Enable compute support for Pascal

2017-04-24 Thread Samuel Pitoiset
On 04/23/2017 05:40 PM, Ilia Mirkin wrote: Series is Reviewed-by: Ilia Mirkin I'd like to get some testing on this to make sure that things do kinda work, at least as well as on maxwell. Perhaps a deqp run, which has a lot of compute/image/etc tests? Yeah, deqp has plenty of compute and ima

Re: [Mesa-dev] [PATCH 2/5] trace: don't trace resource_destroy

2017-04-24 Thread Nicolai Hähnle
On 23.04.2017 01:10, Marek Olšák wrote: From: Marek Olšák due to the lack of pipe_resource wrapping, we can get this call from inside of driver calls, which would try to lock an already-locked mutex. --- src/gallium/drivers/trace/tr_screen.c | 7 --- 1 file changed, 7 deletions(-) diff --

Re: [Mesa-dev] [PATCH 3/5] ddebug: implement get_query_result_resource

2017-04-24 Thread Nicolai Hähnle
Apart from the minor comment on patch 2, patches 1-3 are: Reviewed-by: Nicolai Hähnle On 23.04.2017 01:10, Marek Olšák wrote: From: Marek Olšák --- src/gallium/drivers/ddebug/dd_context.c | 16 1 file changed, 16 insertions(+) diff --git a/src/gallium/drivers/ddebug/dd_con

Re: [Mesa-dev] [PATCH 5/5] st/mesa: clean up min/max_index handling in st_draw_vbo

2017-04-24 Thread Nicolai Hähnle
On 23.04.2017 01:10, Marek Olšák wrote: From: Marek Olšák There is no reason to check for ~0. Also remove the incorrect comment. --- src/mesa/state_tracker/st_draw.c | 9 ++--- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_t

Re: [Mesa-dev] [PATCH 1/4] mesa: only lock framebuffer in compat profile

2017-04-24 Thread Nicolai Hähnle
On 24.04.2017 07:28, Timothy Arceri wrote: From the EXT_framebuffer_object spec: "Framebuffer objects created with the commands defined by the GL_EXT_framebuffer_object extension are defined to be shared, while FBOs created with commands defined by the OpenGL core or GL_ARB_framebuf

Re: [Mesa-dev] [PATCH 4/4] mesa: tidy up left over APPLE_vertex_array_object semantics

2017-04-24 Thread Nicolai Hähnle
On 24.04.2017 07:28, Timothy Arceri wrote: --- src/mesa/main/arrayobj.c | 11 +-- src/mesa/main/attrib.c | 23 +++ src/mesa/main/mtypes.h | 16 src/mesa/main/varray.c | 2 +- 4 files changed, 9 insertions(+), 43 deletions(-) diff --git a/src/m

Re: [Mesa-dev] [PATCH 2/2] mesa: use locked version of HashWalk for xfb objects

2017-04-24 Thread Nicolai Hähnle
On 24.04.2017 07:59, Timothy Arceri wrote: From Chapter 5 'Shared Objects and Multiple Contexts' of the OpenGL 4.5 spec: "Objects which contain references to other objects include framebuffer, program pipeline, query, transform feedback, and vertex array objects. Such objects are call

Re: [Mesa-dev] [PATCH 1/4] mesa: only lock framebuffer in compat profile

2017-04-24 Thread Emil Velikov
Hi Tim, On 24 April 2017 at 06:28, Timothy Arceri wrote: > So in theory we could have a flag that is set by the bind > functions to decide if to lock or not. However we only > expose GL_EXT_framebuffer_object in compat profile so this > change just uses that to decide if we should lock or not. >

Re: [Mesa-dev] [PATCH 4/4] mesa: tidy up left over APPLE_vertex_array_object semantics

2017-04-24 Thread Timothy Arceri
On 24/04/17 20:13, Nicolai Hähnle wrote: On 24.04.2017 07:28, Timothy Arceri wrote: --- src/mesa/main/arrayobj.c | 11 +-- src/mesa/main/attrib.c | 23 +++ src/mesa/main/mtypes.h | 16 src/mesa/main/varray.c | 2 +- 4 files changed, 9 insert

Re: [Mesa-dev] [PATCH 1/2] mesa: create locked version of HashWalk

2017-04-24 Thread Timothy Arceri
On 24/04/17 16:15, Michael Schellenberger Costa wrote: Him Tim, I hadnt had my morning coffee butdidnt you do it the other way around? It looks like, that "_mesa_HashWalk" ist he locked and "_mesa_HashWalkLocked" the unlocked version. Yeah that's just the naming convention. It's a little con

[Mesa-dev] [PATCH v2 00/31] ARB_bindless_texture: round one (GLSL)

2017-04-24 Thread Samuel Pitoiset
Hi, Because ARB_bindless_texture [1] is a massive feature which requires a bunch of changes in Mesa, I splitted the whole series in order to help reviewers. The first one adds all GLSL bits to the compiler. This implements a new alternative which no longer introduces new base types for bindless s

[Mesa-dev] [PATCH v2 01/31] mesa: add ARB_bindless_texture to the extensions list

2017-04-24 Thread Samuel Pitoiset
This is required for the following GLSL bits. Signed-off-by: Samuel Pitoiset Reviewed-by: Nicolai Hähnle --- src/mesa/main/extensions_table.h | 1 + src/mesa/main/mtypes.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions

[Mesa-dev] [PATCH v2 02/31] glsl: add ARB_bindless_texture enable

2017-04-24 Thread Samuel Pitoiset
This also adds the extension to the standalone GLSL compiler. Signed-off-by: Samuel Pitoiset Reviewed-by: Ilia Mirkin Reviewed-by: Timothy Arceri Reviewed-by: Nicolai Hähnle --- src/compiler/glsl/glsl_parser_extras.cpp | 1 + src/compiler/glsl/glsl_parser_extras.h | 7 +++ src/c

[Mesa-dev] [PATCH v2 03/31] glsl: make sampler/image types as 64-bit

2017-04-24 Thread Samuel Pitoiset
The ARB_bindless_texture spec says: "Samplers are represented using 64-bit integer handles." and, "Images are represented using 64-bit integer handles." It seems simpler to always consider sampler and image types as 64-bit unsigned integer. This introduces a temporary workaround in _mesa

[Mesa-dev] [PATCH v2 04/31] glsl: make component_slots() returns 2 for samplers/images

2017-04-24 Thread Samuel Pitoiset
Bindless samplers/images are 64-bit unsigned integers, which means they consume two components as specified by ARB_bindless_texture. It looks like we are not wasting uniform storage by changing this because default-block uniforms are not packed. So, if we use N uint uniforms, they occupy N * 16 by

[Mesa-dev] [PATCH v2 07/31] glsl: allow bindless samplers/images as shader outputs

2017-04-24 Thread Samuel Pitoiset
Signed-off-by: Samuel Pitoiset --- src/compiler/glsl/ast_to_hir.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index 85015e140e..e4b076f700 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compil

[Mesa-dev] [PATCH v2 15/31] glsl: allow bindless samplers/images as varying variables

2017-04-24 Thread Samuel Pitoiset
The ARB_bindless_texture spec says: "Replace Section 4.1.7 (Samplers), p. 25" "Samplers may be declared as shader inputs and outputs, as uniform variables, as temporary variables, and as function parameters" and, "Replace Section 4.1.X, (Images)" "Images may be declared as shad

[Mesa-dev] [PATCH v2 13/31] glsl: allow image qualifiers inside structures

2017-04-24 Thread Samuel Pitoiset
The GL_ARB_bindless_texture allows to declare images inside structures which means that qualifiers like writeonly should be allowed. I have a got a confirmation from Jeff Bolz (one author of the spec), because the spec doesn't clearly explain this. Signed-off-by: Samuel Pitoiset Reviewed-by: Tim

[Mesa-dev] [PATCH v2 10/31] glsl: allow bindless samplers/images inside interface blocks

2017-04-24 Thread Samuel Pitoiset
The ARB_bindless_texture spec says: "Modify Section 4.3.7, Interface Blocks, p. 38" "(remove the following bullet from the last list on p. 39, thereby permitting sampler types in interface blocks; image types are also permitted in blocks by this extension)" * sampler types ar

[Mesa-dev] [PATCH v2 06/31] glsl: allow to declare bindless samplers/images as non-uniform

2017-04-24 Thread Samuel Pitoiset
The ARB_bindless_texture spec says: "Replace Section 4.1.7 (Samplers), p. 25" "Samplers may be declared as shader inputs and outputs, as uniform variables, as temporary variables, and as function parameters." "Replace Section 4.1.X, (Images)" "Images may be declared as shader in

[Mesa-dev] [PATCH v2 11/31] glsl: fix std140/std430 interfaces for bindless samplers/images

2017-04-24 Thread Samuel Pitoiset
The ARB_bindless_texture spec says: "Samplers are represented using 64-bit integer handles". Signed-off-by: Samuel Pitoiset --- src/compiler/glsl_types.cpp | 28 1 file changed, 28 insertions(+) diff --git a/src/compiler/glsl_types.cpp b/src/compiler/glsl_types.

[Mesa-dev] [PATCH v2 17/31] glsl: reject bindless samplers/images frag inputs without 'flat'

2017-04-24 Thread Samuel Pitoiset
The ARB_bindless_texture spec says: "Modify Section 4.3.4, Inputs, p. 34" "(modify last paragraph, p. 35, allowing samplers and images as fragment shader inputs) ... Fragment inputs can only be signed and unsigned integers and integer vectors, floating point scalars, floating-po

[Mesa-dev] [PATCH v2 14/31] glsl: allow input memory qualifiers for images

2017-04-24 Thread Samuel Pitoiset
The GL_ARB_bindless_texture spec allows images to be declared as shader inputs. v2: - put the */ on the following line (Timothy Arceri) Signed-off-by: Samuel Pitoiset Reviewed-by: Timothy Arceri --- src/compiler/glsl/ast_type.cpp | 12 1 file changed, 12 insertions(+) diff --git

[Mesa-dev] [PATCH v2 08/31] glsl: allow bindless samplers/images as out and inout parameters

2017-04-24 Thread Samuel Pitoiset
Signed-off-by: Samuel Pitoiset --- src/compiler/glsl/ast_to_hir.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index e4b076f700..24ad4b117c 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compil

[Mesa-dev] [PATCH v2 12/31] glsl: allow bindless images to be declared inside structures

2017-04-24 Thread Samuel Pitoiset
The spec doesn't clearly state this, but I have got clarifiation from the spec authors. Signed-off-by: Samuel Pitoiset --- src/compiler/glsl/ast_to_hir.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp inde

[Mesa-dev] [PATCH v2 09/31] glsl: allow bindless samplers/images as function return

2017-04-24 Thread Samuel Pitoiset
Signed-off-by: Samuel Pitoiset --- src/compiler/glsl/ast_to_hir.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index 24ad4b117c..b100ded836 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compil

[Mesa-dev] [PATCH v2 19/31] glsl: fix explicit binding location for bindless samplers/images

2017-04-24 Thread Samuel Pitoiset
The ARB_bindless_texture spec says: "Interactions with GLSL 4.20" "Without GLSL 4.20 support, sampler and image uniforms may only be initialized through the OpenGL API. With GLSL 4.20, sampler and image uniforms may be initialized in the shader using layout(binding = integer-co

[Mesa-dev] [PATCH v2 20/31] glsl: add _mesa_glsl_parse_state object to is_lvalue()

2017-04-24 Thread Samuel Pitoiset
Yes, this is a bit hacky but we don't really have the choice. Plain GLSL doesn't accept bindless samplers/images as l-values while it's allowed when ARB_bindless_texture is enabled. The default NULL parameter is because we can't access the _mesa_glsl_parse_state object in few places in the compile

[Mesa-dev] [PATCH v2 18/31] glsl: relax bindless sampler arrays indexing

2017-04-24 Thread Samuel Pitoiset
The ARB_bindless_texture spec says: "Replace Section 4.1.7 (Samplers), p. 25" "Samplers aggregated into arrays within a shader (using square brackets []) can be indexed with arbitrary integer expressions." Signed-off-by: Samuel Pitoiset --- src/compiler/glsl/ast_array_index.cpp | 10

[Mesa-dev] [PATCH v2 29/31] glsl: do not count bindless samplers/images when linking uniforms

2017-04-24 Thread Samuel Pitoiset
The ARB_bindless_texture spec says: "Modify Section 2.14.8, Shader Execution, p. 122" "(modify second paragraph, p. 126) ... against the MAX_COMBINED_TEXTURE_IMAGE_UNITS limit. Samplers accessed using texture handles (section 3.9.X) are not counted against this limit." Si

[Mesa-dev] [PATCH v2 27/31] glsl: implement ARB_bindless_texture conversions

2017-04-24 Thread Samuel Pitoiset
The ARB_bindless_texture spec says: "Modify Section 5.4.1, Conversion and Scalar Constructors, p. 60" (add the following constructors:) // In the following four constructors, the low 32 bits of the sampler // type correspond to the .x component of the uvec2 and the high 32 bit

[Mesa-dev] [PATCH v2 28/31] glsl: lower bindless sampler/image packed varyings

2017-04-24 Thread Samuel Pitoiset
Signed-off-by: Samuel Pitoiset --- src/compiler/glsl/lower_packed_varyings.cpp | 24 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/compiler/glsl/lower_packed_varyings.cpp b/src/compiler/glsl/lower_packed_varyings.cpp index b1a3b49b1d..c9e1c66d48 1006

[Mesa-dev] [PATCH v2 16/31] glsl: allow bindless samplers/images as vertex shader inputs

2017-04-24 Thread Samuel Pitoiset
The ARB_bindless_texture spec says: "Modify Section 4.3.4, Inputs, p. 34" "(modify third paragraph of the section to allow sampler and image types) ... Vertex shader inputs can only be float, single-precision floating-point scalars, single-precision floating-point vectors, matr

[Mesa-dev] [PATCH v2 22/31] glsl: allow bindless samplers/images to be initialized

2017-04-24 Thread Samuel Pitoiset
Signed-off-by: Samuel Pitoiset --- src/compiler/glsl/ast_to_hir.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index f90ae3d09a..e4d8bae2f5 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compil

[Mesa-dev] [PATCH v2 24/31] glsl: add ARB_bindless_texture operations

2017-04-24 Thread Samuel Pitoiset
For the explicit pack/unpack conversions. Signed-off-by: Samuel Pitoiset --- src/compiler/glsl/ir_expression_operation.py | 6 ++ src/compiler/glsl/ir_validate.cpp| 20 src/mesa/program/ir_to_mesa.cpp | 4 src/mesa/state_tracker/st_glsl_to

  1   2   3   >