Jakob Sinclair [Tue, 12 Apr 2016 18:48:18 +0000 (20:48 +0200)]
st/mesa: Replace GLvoid with void
GLvoid was used before in OpenGL but it has changed to just using void.
All GLvoids in mesa's state tracker has been changed to void in this patch.
Tested this with piglit and no problems were found. No compiler warnings.
Signed-off-by: Jakob Sinclair <sinclair.jakob@openmailbox.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Bas Nieuwenhuizen [Sun, 3 Apr 2016 19:49:44 +0000 (21:49 +0200)]
radeonsi: Mark ARB_robust_buffer_access_behavior as supported.
Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Bas Nieuwenhuizen [Tue, 12 Apr 2016 13:00:31 +0000 (15:00 +0200)]
gallium: Add capability for ARB_robust_buffer_access_behavior.
Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Bas Nieuwenhuizen [Tue, 12 Apr 2016 12:57:07 +0000 (14:57 +0200)]
mesa: Expose the ARB_robust_buffer_access_behavior extension.
Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Miklós Máté [Thu, 24 Mar 2016 00:12:59 +0000 (01:12 +0100)]
main: rework the compatibility check of visuals in glXMakeCurrent
Now it follows the compatibility criteria listed in section 2.1 of
the GLX 1.4 specification.
This is needed for post-process effects in SW:KotOR.
Signed-off-by: Miklós Máté <mtmkls@gmail.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Tim Rowley [Fri, 1 Apr 2016 21:52:34 +0000 (15:52 -0600)]
swr: [rasterizer core] warning cleanup
Acked-by: Brian Paul <brianp@vmware.com>
Tim Rowley [Thu, 31 Mar 2016 01:24:32 +0000 (19:24 -0600)]
swr: [rasterizer] Put in rudimentary garbage collection for the global arena allocator
- Check for unused blocks every few frames or every 64K draws
- Delete data unused since the last check if total unused data is > 20MB
Doesn't seem to cause a perf degridation
Acked-by: Brian Paul <brianp@vmware.com>
Tim Rowley [Wed, 30 Mar 2016 21:54:48 +0000 (15:54 -0600)]
swr: [rasterizer core] Put DRAW_CONTEXT on a diet
No need for 256 pointers per DC.
Acked-by: Brian Paul <brianp@vmware.com>
Tim Rowley [Wed, 30 Mar 2016 20:59:40 +0000 (14:59 -0600)]
swr: [rasterizer core] Add experimental support for hyper-threaded front-end
Acked-by: Brian Paul <brianp@vmware.com>
Tim Rowley [Wed, 30 Mar 2016 18:32:41 +0000 (12:32 -0600)]
swr: [rasterizer] Avoid segv in thread creation on machines with non-consecutive NUMA topology.
Acked-by: Brian Paul <brianp@vmware.com>
Tim Rowley [Tue, 29 Mar 2016 17:56:04 +0000 (11:56 -0600)]
swr: [rasterizer core] Replace all naked OSALIGN macro uses with OSALIGNSIMD / OSALIGNLINE
Future proofing
Acked-by: Brian Paul <brianp@vmware.com>
Tim Rowley [Tue, 29 Mar 2016 16:58:43 +0000 (10:58 -0600)]
swr: [rasterizer] Ensure correct alignment of stack variables used as vectors
Acked-by: Brian Paul <brianp@vmware.com>
Tim Rowley [Fri, 25 Mar 2016 23:24:45 +0000 (17:24 -0600)]
swr: [rasterizer core] Quantize depth to depth buffer precision prior to depth test/write.
Fixes z-fighting issues.
Acked-by: Brian Paul <brianp@vmware.com>
Tim Rowley [Thu, 24 Mar 2016 23:48:57 +0000 (17:48 -0600)]
swr: [rasterizer common] win32 build fixups
Acked-by: Brian Paul <brianp@vmware.com>
Tim Rowley [Thu, 24 Mar 2016 22:20:02 +0000 (16:20 -0600)]
swr: [rasterizer core] Affinitize thread scratch space to numa node of worker
Acked-by: Brian Paul <brianp@vmware.com>
Tim Rowley [Thu, 24 Mar 2016 21:52:11 +0000 (15:52 -0600)]
swr: [rasterizer] Misc fixes identified by static code analysis
No perf loss detected
Acked-by: Brian Paul <brianp@vmware.com>
Brian Paul [Tue, 12 Apr 2016 00:54:28 +0000 (18:54 -0600)]
st/mesa: fix memleak in glDrawPixels cache code
If the glDrawPixels size changed, we leaked the previously cached
texture, if there was one. This patch fixes the reference counting,
adds a refcount assertion check, and better handles potential malloc()
failures.
Tested with a modified version of the drawpix Mesa demo which changed
the image size for each glDrawPixels call.
Cc: "11.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Jose Fonseca [Tue, 12 Apr 2016 06:36:06 +0000 (07:36 +0100)]
gallium: Use STATIC_ASSERT whenever possible.
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Jose Fonseca [Tue, 12 Apr 2016 06:35:38 +0000 (07:35 +0100)]
softpipe: Use STATIC_ASSERT whenever possible.
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Jose Fonseca [Tue, 12 Apr 2016 06:35:23 +0000 (07:35 +0100)]
svga: Use STATIC_ASSERT whenever possible.
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Jose Fonseca [Tue, 12 Apr 2016 06:35:08 +0000 (07:35 +0100)]
mesa: Use STATIC_ASSERT whenever possible.
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Marek Olšák [Sun, 10 Apr 2016 02:56:46 +0000 (04:56 +0200)]
r600g: use common scissor and viewport code
It's the same as radeonsi. This adds guard band support to r600g.
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Grigori Goronzy <greg@chown.ath.cx>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 10 Apr 2016 10:53:12 +0000 (12:53 +0200)]
gallium/radeon: add R600/Evergreen/Cayman support to common viewport code
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Grigori Goronzy <greg@chown.ath.cx>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 10 Apr 2016 02:26:50 +0000 (04:26 +0200)]
radeonsi: move scissor and viewport states into gallium/radeon
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Grigori Goronzy <greg@chown.ath.cx>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 10 Apr 2016 01:38:09 +0000 (03:38 +0200)]
radeonsi: use guard band clipping
Guard band clipping speeds up rasterization for primitives that are
partially off-screen. This change in particular results in small
framerate improvements in a wide range of games.
Started by Grigori Goronzy <greg@chown.ath.cx>.
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Grigori Goronzy <greg@chown.ath.cx>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 10 Apr 2016 01:29:57 +0000 (03:29 +0200)]
radeonsi: compute scissor from viewport in set_viewport_states
and clamp it right before emitting. This is a prerequisite for computing
the guard band.
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Grigori Goronzy <greg@chown.ath.cx>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Mon, 11 Apr 2016 18:24:34 +0000 (20:24 +0200)]
gallium/radeon: set GTT WC on tiled textures
Just for consistency. This should have no effect, because OpenGL textures
always go to VRAM.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Marek Olšák [Mon, 11 Apr 2016 17:56:07 +0000 (19:56 +0200)]
gallium/radeon: relax requirements on VRAM placements on APUs
This makes Tonga with vramlimit=128 2x faster in Heaven.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Marek Olšák [Mon, 11 Apr 2016 17:26:03 +0000 (19:26 +0200)]
winsys/amdgpu: remove hack for low VRAM configuration
A better solution will be used.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Marek Olšák [Thu, 7 Apr 2016 19:18:14 +0000 (21:18 +0200)]
r600g: disable aniso filtering for non-mipmap textures on EG
this is the default behavior of the closed driver when running on VI
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Fri, 8 Apr 2016 00:09:59 +0000 (02:09 +0200)]
r600g: clean up aniso state translation
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Thu, 7 Apr 2016 19:37:43 +0000 (21:37 +0200)]
radeonsi: disable aniso filtering for non-mipmap textures on SI-CI
The closed driver does this, but it looks at base_level and last_level
and uses a conditional assignment, which LLVM can't generate on SGPRs.
That led me to invent this solution that abuses the image descriptor.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Fri, 8 Apr 2016 00:08:23 +0000 (02:08 +0200)]
radeonsi: clean up aniso state translation
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Thu, 7 Apr 2016 15:02:51 +0000 (17:02 +0200)]
radeonsi: enable some sampler fields to match the closed driver
copied from the Vulkan driver
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Thu, 7 Apr 2016 13:34:45 +0000 (15:34 +0200)]
gallium/radeon: fix maximum texture anisotropy setup
We were overdoing it for non-power-of-two values.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 10 Apr 2016 20:48:48 +0000 (22:48 +0200)]
gallium/radeon: never choose a linear tiling for DB surfaces
Just for consistency. This is actually not a problem, because both addrlib
and radeon check and fix this.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 10 Apr 2016 20:39:54 +0000 (22:39 +0200)]
gallium/radeon: removing dead code for sharing stencil buffers
This is a remnant of the times when the DDX was allocating depth-stencil
buffers for windows. Now, st/dri allocates them and doesn't share them.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 10 Apr 2016 15:21:19 +0000 (17:21 +0200)]
radeonsi: allow clearing buffers >= 4 GB
Only CMASK and DCC clears can use this, because only textures can be so
large.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 10 Apr 2016 15:14:49 +0000 (17:14 +0200)]
gallium/radeon: allow allocating textures >= 4 GB
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 10 Apr 2016 14:50:17 +0000 (16:50 +0200)]
winsys/radeon: fix printing allocation failures
print as unsigned instead of signed
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 10 Apr 2016 14:48:55 +0000 (16:48 +0200)]
winsys/amdgpu: add support for 64-bit buffer sizes
v2: fail in radeon_winsys_bo_create if size > 32 bits
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Sun, 10 Apr 2016 14:37:33 +0000 (16:37 +0200)]
pb_buffer: switch pb_buffer::size to 64 bits
being able to allocate more than 4 GB may be useful
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Fri, 8 Apr 2016 19:26:23 +0000 (21:26 +0200)]
gallium/radeon: remove R600_QUERY_HW_FLAG_TIMER
not used anymore
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Fri, 8 Apr 2016 19:24:19 +0000 (21:24 +0200)]
gallium/radeon: merge timer and non-timer query lists
All of them are paused only between IBs.
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Fri, 8 Apr 2016 19:12:13 +0000 (21:12 +0200)]
r600g: don't manually stop queries for blitter
r600_set_active_query_state does it better.
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Fri, 8 Apr 2016 19:10:58 +0000 (21:10 +0200)]
r600g: add pausing pipeline & streamout queries into set_active_query_state
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Fri, 8 Apr 2016 18:41:52 +0000 (20:41 +0200)]
r600g: implement set_active_query_state for pausing occlusion queries
Use ZPASS_INCREMENT_DISABLE everywhere.
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Fri, 8 Apr 2016 18:23:51 +0000 (20:23 +0200)]
r600g: simplify r600_set_occlusion_query_state
The caller does the same checking.
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Fri, 8 Apr 2016 18:29:08 +0000 (20:29 +0200)]
gallium/radeon: move pipeline stat context flags to common code
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Fri, 8 Apr 2016 18:37:06 +0000 (20:37 +0200)]
r600g: fix typo in r600 register definitions
Acked-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Marek Olšák [Thu, 7 Apr 2016 01:24:06 +0000 (03:24 +0200)]
gallium/radeon: unify checking streamout enable state
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Thu, 7 Apr 2016 19:41:34 +0000 (21:41 +0200)]
radeonsi: fix mask checking when emitting scissors and viewports
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Grigori Goronzy <greg@chown.ath.cx>
Marek Olšák [Thu, 7 Apr 2016 00:59:09 +0000 (02:59 +0200)]
radeonsi: implement and rely on set_active_query_state
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Thu, 7 Apr 2016 23:43:00 +0000 (01:43 +0200)]
gallium: pause queries for all meta ops
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Marek Olšák [Thu, 7 Apr 2016 23:42:00 +0000 (01:42 +0200)]
gallium: add pipe_context::set_active_query_state for pausing queries
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Bas Nieuwenhuizen [Mon, 11 Apr 2016 13:53:43 +0000 (15:53 +0200)]
radeonsi: Synchronize a streamout write after read hazard.
Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Hans de Goede [Mon, 11 Apr 2016 12:07:20 +0000 (14:07 +0200)]
nv30: Add missing PIPE_SHADER_CAP_INTEGERS to get_shader_param()
Add missing PIPE_SHADER_CAP_INTEGERS for frag shaders to
nv30_screen_get_shader_param().
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Haixia Shi [Thu, 7 Apr 2016 18:05:08 +0000 (11:05 -0700)]
dri/i965: extend GLES3 sRGB workaround to cover all formats
It is incorrect to assume BGRA byte order for the GLES3 sRGB workaround.
v2: use _mesa_get_srgb_format_linear to handle all formats
Signed-off-by: Haixia Shi <hshi@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Eduardo Lima Mitev [Tue, 12 Apr 2016 08:11:35 +0000 (10:11 +0200)]
i965: Add autogenerated 'brw_nir_trig_workarounds.c' to gitignore
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Rhys Kidd [Mon, 11 Apr 2016 00:43:25 +0000 (20:43 -0400)]
glsl: Update hash table comments in constant propagation
Signed-off-by: Rhys Kidd <rhyskidd@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Dave Airlie [Mon, 11 Apr 2016 03:02:20 +0000 (13:02 +1000)]
softpipe: add SSBO/shader atomics support.
This adds support for the features requires for ARB_shader_storage_buffer_object
and ARB_shader_atomic_counters, ARB_shader_atomic_counter_ops.
[airlied: some cleanups applied]
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Mon, 11 Apr 2016 02:59:25 +0000 (12:59 +1000)]
draw: add support for passing buffers to vs/gs shaders.
Like the image code, but for shader buffers this time.
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Mon, 11 Apr 2016 02:54:59 +0000 (12:54 +1000)]
tgsi: add support for buffer/atomic operations to tgsi_exec.
This adds support for doing load/store/atomic operations on
buffer objects.
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Mon, 11 Apr 2016 02:20:38 +0000 (12:20 +1000)]
tgsi: set nonhelpermask for vertex shaders
For atomic operations we really need to avoid executing unnecessary shaders, so for some
tests that just draw a single point we only want one vertex to get processed not 4,
this fixes a number of the atomic counters tests.
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Ian Romanick [Tue, 12 Apr 2016 01:40:02 +0000 (18:40 -0700)]
nir: Fix typo in comment
Trivial.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Markus Wick [Sat, 9 Apr 2016 01:31:16 +0000 (03:31 +0200)]
nir: Merge redudant integer clamping.
Dolphin uses them a lot. Range tracking would be better in the long term,
but this two lines works fine for now.
Signed-off-by: Markus Wick <markus@selfnet.de>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Kenneth Graunke [Thu, 7 Apr 2016 22:04:35 +0000 (15:04 -0700)]
i965: Port INTEL_PRECISE_TRIG=1 to NIR.
This makes the extra multiply visible to NIR's algebraic optimizations
(for constant reassociation) as well as constant folding. This means
that when the result of sin/cos are multiplied by an constant, we can
eliminate the extra multiply altogether, reducing the cost of the
workaround.
It also means we only have to implement it one place, rather than in
both backends.
This makes INTEL_PRECISE_TRIG=1 cost nothing on GPUTest/Volplosion,
which has a ton of sin() calls, but always multiplies them by an
immediate constant. The extra multiply gets folded away.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Kenneth Graunke [Thu, 7 Apr 2016 22:09:56 +0000 (15:09 -0700)]
i965: Pass brw_compiler into brw_preprocess_nir() instead of is_scalar.
I want to be able to read other fields.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Kenneth Graunke [Thu, 7 Apr 2016 22:03:39 +0000 (15:03 -0700)]
nir: Silence unused "options" warning in algebraic passes.
Some passes may not refer to options->..., at which point the compiler
will warn about an unused variable. Just cast to void unconditionally
to shut it up.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Kenneth Graunke [Thu, 7 Apr 2016 05:34:39 +0000 (22:34 -0700)]
nir: Do basic constant reassociation.
Many shaders contain expression trees of the form:
const_1 * (value * const_2)
Reorganizing these to
(const_1 * const_2) * value
will allow constant folding to combine the constants. Sometimes, these
constants are 2 and 0.5, so we can remove a multiply altogether. Other
times, it can create more immediate constants, which can actually hurt.
Finding a good balance here is tricky. While much more could be done,
this simple patch seems to have a lot of positive benefit while having
a low downside.
shader-db results on Broadwell:
total instructions in shared programs:
8963768 ->
8961369 (-0.03%)
instructions in affected programs: 438318 -> 435919 (-0.55%)
helped: 1502
HURT: 245
total cycles in shared programs:
71527354 ->
71421516 (-0.15%)
cycles in affected programs:
11541788 ->
11435950 (-0.92%)
helped: 3445
HURT: 1224
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Boyuan Zhang [Fri, 8 Apr 2016 15:31:15 +0000 (11:31 -0400)]
radeon/uvd: alignment fix for decode message buffer
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Brian Paul [Mon, 11 Apr 2016 22:29:02 +0000 (16:29 -0600)]
st/mesa: replace _mesa_sysval_to_semantic table with function
Instead of using an array indexed by SYSTEM_VALUE_x, just use a
switch statement. This fixes a regression caused by inserting new
SYSTEM_VALUE_ enums but not updating the mapping to TGSI semantics.
v2: fix a few switch statement mistakes for compute-related enums
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Jason Ekstrand [Fri, 25 Mar 2016 17:54:27 +0000 (10:54 -0700)]
nir/lower_system_values: Add support for several computed values
Reviewed-by: Rob Clark <robdclark@gmail.com>
Jason Ekstrand [Fri, 25 Mar 2016 17:51:23 +0000 (10:51 -0700)]
glsl/shader_enums: Add the other two compute builtins
These weren't added before because they are actually calculated values that
are computed from other inputs. However, in order to handle them in
nir_lower_system_values, it's nice for them to have a cannonical locaiton.
Reviewed-by: Rob Clark <robdclark@gmail.com>
Jason Ekstrand [Fri, 25 Mar 2016 17:50:11 +0000 (10:50 -0700)]
glsl/shader_enums: Add an enum for Vulkan InstanceIndex
In Vulkan, you have InstanceIndex which begins at the base instance value
rather than the zero-based InstanceID of GL.
Reviewed-by: Rob Clark <robdclark@gmail.com>
Emil Velikov [Wed, 6 Apr 2016 12:07:04 +0000 (13:07 +0100)]
mesa: add missing header to the tarball
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Emil Velikov [Wed, 6 Apr 2016 12:06:26 +0000 (13:06 +0100)]
drivers/softpipe: add missing header to the tarball
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Emil Velikov [Tue, 5 Apr 2016 14:50:28 +0000 (15:50 +0100)]
mesa: automake: update and reuse X86_SSE41_FILES list
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Emil Velikov [Tue, 5 Apr 2016 13:48:20 +0000 (14:48 +0100)]
compiler: android: flesh out nir into separate makefile
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Emil Velikov [Tue, 5 Apr 2016 13:42:50 +0000 (14:42 +0100)]
compiler: automake: flesh out NIR into separate makefile.
Analogous to previous commit - improved readability at the expense of
an extra file.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Emil Velikov [Tue, 5 Apr 2016 13:40:42 +0000 (14:40 +0100)]
compiler: automake: split out glsl into separate makefile
Preserve the functionality while keeping the files smaller and
more readable.
v2: Do not include Makefile.sources from the GLSL makefile (silences
automake warnings)
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net> (v1)
Emil Velikov [Mon, 11 Apr 2016 12:23:17 +0000 (13:23 +0100)]
compiler: remove {glsl,nir}/Makefile.sources
No longer used as of last commit.
v2: Rebase.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net> (v1)
Emil Velikov [Tue, 5 Apr 2016 13:29:41 +0000 (14:29 +0100)]
configure.ac: update the path of the generated files
... in order to determine if we need bison/flex. Failing to locate the
files will lead to mandating bison/flex even when building from a
release tarball.
CC: "11.2" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Emil Velikov [Tue, 5 Apr 2016 13:25:19 +0000 (14:25 +0100)]
glsl: move the android build scripts a level up
Analogous to previous commit.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Emil Velikov [Tue, 5 Apr 2016 13:05:19 +0000 (14:05 +0100)]
glsl: move the scons build script a level up
It will allow us to remove the duplicate glsl/Makefile.sources.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Emil Velikov [Tue, 5 Apr 2016 12:00:52 +0000 (13:00 +0100)]
Part revert "gallium/auxiliary: don't build NIR sources with MSVC2008 flags"
This reverts commit
41c7912d04111a7e3b75a438c5cbbd7edc0fee25 but leaves
out the pragma [that inspired the original commit].
Building mesa requires MSVC2013 or later, thus we no longer need this.
v2: Use correct include path (src/glsl/nir -> src/compiler/nir)
Conflicts:
src/gallium/auxiliary/Makefile.am
Acked-by: Jason Ekstrand <jason@jlekstrand.net> (v1)
Nicolai Hähnle [Mon, 11 Apr 2016 17:48:10 +0000 (12:48 -0500)]
GL3: ARB_shader_image_load_store/size is done for radeonsi also in GLES
Trivial.
Brian Paul [Mon, 11 Apr 2016 15:10:29 +0000 (09:10 -0600)]
docs: fix Coverity URL
Oded Gabbay [Sun, 20 Mar 2016 08:41:40 +0000 (10:41 +0200)]
tgsi/doc: fix spelling error
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Connor Abbott [Thu, 12 Nov 2015 10:40:34 +0000 (11:40 +0100)]
nir: add a pass for lowering (un)pack_double_2x32
v2: Undo unintended change to the signature of
nir_normalize_cubemap_coords (Iago).
v3: Move to compiler/nir (Iago)
v4: Remove Authors from copyright header (Michael Schellenberger)
v5 (Sam):
- Use nir_channel() and nir_ssa_for_alu_src() helpers (Jason)
- Inline lower_double_pack_instr() code into lower_double_pack_block()
(Jason).
- Initialize nir_builder at lower_double_pack_impl() (Jason).
Signed-off-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Connor Abbott [Fri, 7 Aug 2015 15:37:38 +0000 (08:37 -0700)]
nir: add split versions of (un)pack_double_2x32
v2 (Sam):
- Use uint64 instead of float64 for sources and destinations. (Connor)
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Connor Abbott [Fri, 31 Jul 2015 17:52:25 +0000 (10:52 -0700)]
nir: don't try to scalarize unpack_double_2x32
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Connor Abbott [Fri, 14 Aug 2015 19:20:37 +0000 (12:20 -0700)]
nir: add support for (un)pack_double_2x32
v2 (Sam):
- Use uint64 instead of float64 for sources and destinations. (Connor)
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Iago Toral Quiroga [Tue, 12 Jan 2016 13:03:08 +0000 (14:03 +0100)]
nir: add i2d and u2d opcodes
v2:
- Assert supports_int and don't fallback to nir_fmov (Jason)
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Iago Toral Quiroga [Tue, 12 Jan 2016 11:39:58 +0000 (12:39 +0100)]
nir: add d2i, d2u, d2b opcodes
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Connor Abbott [Thu, 30 Jul 2015 06:46:20 +0000 (23:46 -0700)]
nir: add support for d2f and f2d
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Iago Toral Quiroga [Thu, 21 Jan 2016 12:23:55 +0000 (13:23 +0100)]
nir/glsl_to_nir: set bit_size on ssbo_load result
v2 (Sam):
- Add missing bit_size assignment when ssbo_load destination is a boolean.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Samuel Iglesias Gonsálvez [Mon, 4 Apr 2016 08:16:11 +0000 (10:16 +0200)]
nir/glsl_to_nir: add bit-size info to add_instr()
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Connor Abbott [Tue, 4 Aug 2015 21:04:54 +0000 (14:04 -0700)]
nir/split_var_copies: handle doubles
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Connor Abbott [Mon, 3 Aug 2015 22:05:38 +0000 (15:05 -0700)]
nir/instr_set: handle 64-bit bit-sizes
v2: Revert spurious change in nir_opt_cse.c (Iago)
Signed-off-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>