mesa.git
4 years agoradv: make sure to not submit any IBs when RADV_FORCE_FAMILY is set
Samuel Pitoiset [Fri, 31 Jan 2020 13:35:54 +0000 (14:35 +0100)]
radv: make sure to not submit any IBs when RADV_FORCE_FAMILY is set

To prevent GPU hangs.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3654>

4 years agoradv: Do not redundantly set the RB+ regs on pipeline switch.
Bas Nieuwenhuizen [Thu, 6 Feb 2020 15:52:52 +0000 (16:52 +0100)]
radv: Do not redundantly set the RB+ regs on pipeline switch.

No significant perf changes seen on Bayonetta. (Changes are in the
noise on my Raven Laptop)

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3735>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3735>

4 years agopanfrost: Remove unused anonymous enum variables.
Vinson Lee [Fri, 7 Feb 2020 21:25:12 +0000 (13:25 -0800)]
panfrost: Remove unused anonymous enum variables.

This patch fix these build errors with GCC 10.

/usr/bin/ld: src/gallium/drivers/panfrost/libpanfrost.a(pan_resource.c.o):src/panfrost/midgard/midgard_compile.h:52: multiple definition of `pan_sysval'; src/gallium/drivers/panfrost/libpanfrost.a(pan_screen.c.o):src/panfrost/midgard/midgard_compile.h:52: first defined here
/usr/bin/ld: src/gallium/drivers/panfrost/libpanfrost.a(pan_resource.c.o):src/panfrost/midgard/midgard_compile.h:68: multiple definition of `pan_special_attributes'; src/gallium/drivers/panfrost/libpanfrost.a(pan_screen.c.o):src/panfrost/midgard/midgard_compile.h:68: first defined here

Fixes: 7e8de5a707f7 ("panfrost: Implement system values")
Fixes: 306800d747bc ("pan/midgard: Lower gl_VertexID/gl_InstanceID to attributes")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3752>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3752>

4 years agoradv: Optimize emitting index buffer changes.
Bas Nieuwenhuizen [Sat, 18 Jan 2020 22:32:46 +0000 (23:32 +0100)]
radv: Optimize emitting index buffer changes.

Since the direct indexed draw packet has the address/count info
inline, there is no sense in emitting the base and size.

No real significant changes found during benchmarks.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3466>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3466>

4 years agonir: Mark fmin and fmax as commutative and associative
Ian Romanick [Thu, 15 Aug 2019 23:24:52 +0000 (16:24 -0700)]
nir: Mark fmin and fmax as commutative and associative

Per the resolution of Khronos GLSL issue 80
(https://github.com/KhronosGroup/GLSL/issues/80).  Spec updates have not
landed yet, but I'll get to it soon. :)

The extra hurt shaders on Gen8+ are a handful of shaders that see things like

    bcsel(fmin(b - a, a - c) >= 0, x, y)

converted to

   bcsel(a >= b && c >= a, x, y)

The former can be generated as a CSEL instruction.  If either b - a or a
- c is used elsewhere in the shader, this saves an instruction.

All Haswell+ platforms had similar results. (Ice Lake shown)
total instructions in shared programs: 14550188 -> 14550048 (<.01%)
instructions in affected programs: 12168 -> 12028 (-1.15%)
helped: 30
HURT: 3
helped stats (abs) min: 1 max: 17 x̄: 4.77 x̃: 2
helped stats (rel) min: 0.05% max: 3.85% x̄: 1.77% x̃: 1.80%
HURT stats (abs)   min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel)   min: 0.50% max: 0.50% x̄: 0.50% x̃: 0.50%
95% mean confidence interval for instructions value: -6.15 -2.33
95% mean confidence interval for instructions %-change: -2.00% -1.12%
Instructions are helped.

total cycles in shared programs: 203770286 -> 203771464 (<.01%)
cycles in affected programs: 688466 -> 689644 (0.17%)
helped: 172
HURT: 220
helped stats (abs) min: 1 max: 286 x̄: 12.15 x̃: 6
helped stats (rel) min: 0.03% max: 5.97% x̄: 0.70% x̃: 0.35%
HURT stats (abs)   min: 1 max: 578 x̄: 14.85 x̃: 6
HURT stats (rel)   min: 0.03% max: 32.36% x̄: 1.21% x̃: 0.52%
95% mean confidence interval for cycles value: -0.74 6.75
95% mean confidence interval for cycles %-change: 0.15% 0.59%
Inconclusive result (value mean confidence interval includes 0).

total fills in shared programs: 4525 -> 4523 (-0.04%)
fills in affected programs: 48 -> 46 (-4.17%)
helped: 1
HURT: 0

Ivy Bridge
total instructions in shared programs: 11858995 -> 11858898 (<.01%)
instructions in affected programs: 10822 -> 10725 (-0.90%)
helped: 25
HURT: 13
helped stats (abs) min: 1 max: 17 x̄: 5.32 x̃: 2
helped stats (rel) min: 0.40% max: 5.00% x̄: 2.16% x̃: 1.85%
HURT stats (abs)   min: 1 max: 15 x̄: 2.77 x̃: 2
HURT stats (rel)   min: 0.47% max: 2.90% x̄: 1.83% x̃: 2.15%
95% mean confidence interval for instructions value: -4.66 -0.45
95% mean confidence interval for instructions %-change: -1.54% -0.05%
Instructions are helped.

total cycles in shared programs: 177947023 -> 177946880 (<.01%)
cycles in affected programs: 822075 -> 821932 (-0.02%)
helped: 157
HURT: 175
helped stats (abs) min: 1 max: 164 x̄: 13.17 x̃: 4
helped stats (rel) min: 0.03% max: 6.72% x̄: 0.64% x̃: 0.17%
HURT stats (abs)   min: 1 max: 308 x̄: 11.00 x̃: 4
HURT stats (rel)   min: 0.03% max: 9.76% x̄: 0.70% x̃: 0.18%
95% mean confidence interval for cycles value: -3.86 3.00
95% mean confidence interval for cycles %-change: -0.09% 0.22%
Inconclusive result (value mean confidence interval includes 0).

total spills in shared programs: 4185 -> 4188 (0.07%)
spills in affected programs: 146 -> 149 (2.05%)
helped: 0
HURT: 1

total fills in shared programs: 5248 -> 5249 (0.02%)
fills in affected programs: 347 -> 348 (0.29%)
helped: 0
HURT: 1

Sandy Bridge
total instructions in shared programs: 10680224 -> 10680144 (<.01%)
instructions in affected programs: 4702 -> 4622 (-1.70%)
helped: 15
HURT: 3
helped stats (abs) min: 1 max: 17 x̄: 5.53 x̃: 5
helped stats (rel) min: 0.39% max: 4.76% x̄: 2.17% x̃: 1.67%
HURT stats (abs)   min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel)   min: 0.52% max: 0.52% x̄: 0.52% x̃: 0.52%
95% mean confidence interval for instructions value: -7.24 -1.65
95% mean confidence interval for instructions %-change: -2.55% -0.89%
Instructions are helped.

total cycles in shared programs: 152988780 -> 152985691 (<.01%)
cycles in affected programs: 1072850 -> 1069761 (-0.29%)
helped: 168
HURT: 145
helped stats (abs) min: 1 max: 592 x̄: 33.90 x̃: 12
helped stats (rel) min: 0.02% max: 10.73% x̄: 0.90% x̃: 0.31%
HURT stats (abs)   min: 1 max: 259 x̄: 17.98 x̃: 6
HURT stats (rel)   min: 0.02% max: 8.17% x̄: 0.77% x̃: 0.19%
95% mean confidence interval for cycles value: -17.95 -1.79
95% mean confidence interval for cycles %-change: -0.34% 0.08%
Inconclusive result (%-change mean confidence interval includes 0).

Iron Lake and GM45 had similar results. (Iron Lake shown)
total instructions in shared programs: 8107033 -> 8107025 (<.01%)
instructions in affected programs: 696 -> 688 (-1.15%)
helped: 5
HURT: 0
helped stats (abs) min: 1 max: 2 x̄: 1.60 x̃: 2
helped stats (rel) min: 0.34% max: 7.14% x̄: 3.47% x̃: 4.65%
95% mean confidence interval for instructions value: -2.28 -0.92
95% mean confidence interval for instructions %-change: -7.22% 0.28%
Inconclusive result (%-change mean confidence interval includes 0).

total cycles in shared programs: 188348526 -> 188348404 (<.01%)
cycles in affected programs: 33618 -> 33496 (-0.36%)
helped: 23
HURT: 0
helped stats (abs) min: 2 max: 12 x̄: 5.30 x̃: 6
helped stats (rel) min: 0.05% max: 1.83% x̄: 0.47% x̃: 0.51%
95% mean confidence interval for cycles value: -6.70 -3.91
95% mean confidence interval for cycles %-change: -0.64% -0.30%
Cycles are helped.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1359>

4 years agoRevert "gallium: Fix big-endian addressing of non-bitmask array formats."
Eric Anholt [Wed, 5 Feb 2020 18:38:57 +0000 (10:38 -0800)]
Revert "gallium: Fix big-endian addressing of non-bitmask array formats."

This reverts the functional part of commit
d17ff2f7f1864c81c1e00d04baf20f953c6d276a, leaving the unit test for
mesa/pipe agreement on what's an array.

The issue is that the util_channel_desc.shift values on array formats are
not used for bit addressing in memory, they're bit addressing within a
word treating a pixel of the format as a native type, as seen by
llvmpipe's use of the values to do shifts (see
lp_build_unpack_arith_rgba_aos() for example).  This means the values are
nonsensical for 3-byte RGB, but then llvmpipe doesn't expose those formats
so it works out.

I still want to clean up our big-endian format handling at some point, but
let's fix the s390x regression first, sort out our format unit tests in
CI, then be able to refactor with confidence.

Fixes: d17ff2f7f186 ("gallium: Fix big-endian addressing of non-bitmask array formats.")
Closes: #2472
Acked-by: Marek Olšák <marek.olsak@amd.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3721>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3721>

4 years agost/mesa: optimize st_update_array with ALWAYSINLINE
Marek Olšák [Tue, 21 Jan 2020 01:32:02 +0000 (20:32 -0500)]
st/mesa: optimize st_update_array with ALWAYSINLINE

The time spent in st_update_array is reduced by 5-10%.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agomesa: don't use bitfields in _mesa_prim
Marek Olšák [Tue, 4 Feb 2020 01:44:04 +0000 (20:44 -0500)]
mesa: don't use bitfields in _mesa_prim

This is better.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agomesa: remove unused _mesa_prim::is_indirect
Marek Olšák [Tue, 4 Feb 2020 01:40:09 +0000 (20:40 -0500)]
mesa: remove unused _mesa_prim::is_indirect

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agoí965: don't use _mesa_prim::is_indirect
Marek Olšák [Tue, 4 Feb 2020 01:34:06 +0000 (20:34 -0500)]
í965: don't use _mesa_prim::is_indirect

the vbo change only affects i965

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: merge use_buffer_objects into vbo_CreateContext to skip the big malloc
Marek Olšák [Tue, 4 Feb 2020 01:20:05 +0000 (20:20 -0500)]
vbo: merge use_buffer_objects into vbo_CreateContext to skip the big malloc

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: clean up resetting vertex attribs
Marek Olšák [Tue, 4 Feb 2020 00:43:42 +0000 (19:43 -0500)]
vbo: clean up resetting vertex attribs

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: also map the immediate mode buffer for read
Marek Olšák [Sat, 1 Feb 2020 01:50:42 +0000 (20:50 -0500)]
vbo: also map the immediate mode buffer for read

because we read from it sometimes and we want cached reads.

We can only do it with the persistent mapping, because the non-persistent
mapping uses incompatible flags.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: delay flagging FLUSH_STORED_VERTICES until glEnd
Marek Olšák [Sat, 1 Feb 2020 01:33:14 +0000 (20:33 -0500)]
vbo: delay flagging FLUSH_STORED_VERTICES until glEnd

Only state changes see this, which can't occur before glEnd.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: add/update unlikely statements in ATTR_UNION
Marek Olšák [Sat, 1 Feb 2020 01:32:05 +0000 (20:32 -0500)]
vbo: add/update unlikely statements in ATTR_UNION

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: increase the size of the immediate mode buffer to decrease draw count
Marek Olšák [Fri, 31 Jan 2020 00:41:02 +0000 (19:41 -0500)]
vbo: increase the size of the immediate mode buffer to decrease draw count

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: use FlushVertices flags properly and clear NeedFlush correctly
Marek Olšák [Thu, 30 Jan 2020 22:49:13 +0000 (17:49 -0500)]
vbo: use FlushVertices flags properly and clear NeedFlush correctly

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: fix resizing 64-bit vertex attributes
Marek Olšák [Fri, 31 Jan 2020 21:26:42 +0000 (16:26 -0500)]
vbo: fix resizing 64-bit vertex attributes

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: optimize resizing vertex attributes during immediate mode
Marek Olšák [Thu, 30 Jan 2020 03:09:20 +0000 (22:09 -0500)]
vbo: optimize resizing vertex attributes during immediate mode

Just move data manually instead of copying all attributes back and forth.

This increases performance by 5% for Viewperf11/Catia - first scene.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: don't store glVertex values temporarily into exec
Marek Olšák [Thu, 23 Jan 2020 00:55:05 +0000 (19:55 -0500)]
vbo: don't store glVertex values temporarily into exec

This improves performance by 4.3% in Viewperf11/Catia, first scene.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: pass only either uint32_t or uint64_t into ATTR_UNION
Marek Olšák [Sat, 25 Jan 2020 03:17:09 +0000 (22:17 -0500)]
vbo: pass only either uint32_t or uint64_t into ATTR_UNION

This makes the next commit possible.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: don't set FLUSH_UPDATE_CURRENT for glVertex
Marek Olšák [Thu, 23 Jan 2020 00:19:25 +0000 (19:19 -0500)]
vbo: don't set FLUSH_UPDATE_CURRENT for glVertex

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: keep the immediate mode buffer always mapped for simplicity
Marek Olšák [Wed, 22 Jan 2020 23:07:02 +0000 (18:07 -0500)]
vbo: keep the immediate mode buffer always mapped for simplicity

It only unmaps when it draws with a non-persistent buffer.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: don't check ctx->NewState twice in glBegin
Marek Olšák [Thu, 23 Jan 2020 02:32:34 +0000 (21:32 -0500)]
vbo: don't check ctx->NewState twice in glBegin

_mesa_valid_to_render does it too.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: remove a funky recursive call in glBegin
Marek Olšák [Thu, 23 Jan 2020 02:27:02 +0000 (21:27 -0500)]
vbo: remove a funky recursive call in glBegin

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: interleave attrsz, attrtype, and active_sz in memory
Marek Olšák [Thu, 23 Jan 2020 02:14:31 +0000 (21:14 -0500)]
vbo: interleave attrsz, attrtype, and active_sz in memory

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: remove immediate mode code that doesn't do anything and simplify stuff
Marek Olšák [Wed, 22 Jan 2020 23:49:51 +0000 (18:49 -0500)]
vbo: remove immediate mode code that doesn't do anything and simplify stuff

no change in behavior

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: don't unmap persistent buffer mappings for glBegin/End
Marek Olšák [Wed, 22 Jan 2020 21:20:59 +0000 (16:20 -0500)]
vbo: don't unmap persistent buffer mappings for glBegin/End

This significantly improves performance by lowering CPU overhead.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: skip FlushMappedBufferRange for glBegin/End by using a persistent mapping
Marek Olšák [Wed, 22 Jan 2020 21:18:16 +0000 (16:18 -0500)]
vbo: skip FlushMappedBufferRange for glBegin/End by using a persistent mapping

This is a preparation for the next commit and just isolates the removal
of GL_MAP_FLUSH_EXPLICIT_BIT and other map flags that don't make sense with
UNSYNCHRONIZED.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agovbo: create the immediate mode buffer only in vbo_exec_vtx_map
Marek Olšák [Wed, 29 Jan 2020 21:09:24 +0000 (16:09 -0500)]
vbo: create the immediate mode buffer only in vbo_exec_vtx_map

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agomesa: import PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET handling
Marek Olšák [Tue, 21 Jan 2020 02:35:54 +0000 (21:35 -0500)]
mesa: import PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET handling

This should decrease overhead in st_update_array.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agomesa: remove FLUSH_CURRENT calls that have no effect
Marek Olšák [Thu, 23 Jan 2020 00:11:22 +0000 (19:11 -0500)]
mesa: remove FLUSH_CURRENT calls that have no effect

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agomesa: fix incorrect uses of FLUSH_CURRENT
Marek Olšák [Thu, 23 Jan 2020 00:09:23 +0000 (19:09 -0500)]
mesa: fix incorrect uses of FLUSH_CURRENT

FLUSH_CURRENT is used to copy attributes from the vbo module to
Current.Attrib. It flushes vertices too, but that's a side effect,
not the intent.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

4 years agoglx: print FPS with 2 decimal places
Marek Olšák [Fri, 24 Jan 2020 02:01:56 +0000 (21:01 -0500)]
glx: print FPS with 2 decimal places

useful if FPS is low.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3590>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3590>

4 years agoradeonsi: don't update states for the DCC MSAA bug on GFX6-7
Marek Olšák [Thu, 30 Jan 2020 21:59:39 +0000 (16:59 -0500)]
radeonsi: don't update states for the DCC MSAA bug on GFX6-7

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3646>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3646>

4 years agoradeonsi: fix the DCC MSAA bug workaround
Marek Olšák [Thu, 30 Jan 2020 21:58:15 +0000 (16:58 -0500)]
radeonsi: fix the DCC MSAA bug workaround

Cc: 19.3 20.0 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3646>

4 years agor600/sfn: Add some documentation
Gert Wollny [Sat, 28 Dec 2019 17:23:19 +0000 (18:23 +0100)]
r600/sfn: Add some documentation

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add .editorconfig file
Gert Wollny [Sat, 28 Dec 2019 17:22:58 +0000 (18:22 +0100)]
r600/sfn: Add .editorconfig file

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add support for SSBO load and store
Gert Wollny [Sat, 28 Dec 2019 15:48:45 +0000 (16:48 +0100)]
r600/sfn: Add support for SSBO load and store

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add support for atomic instructions
Gert Wollny [Sat, 28 Dec 2019 15:19:03 +0000 (16:19 +0100)]
r600/sfn: Add support for atomic instructions

v2: fix compilation with gcc-6

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600: Make sure LLVM is not used for DRAW
Gert Wollny [Fri, 27 Dec 2019 20:24:11 +0000 (21:24 +0100)]
r600: Make sure LLVM is not used for DRAW

For some reasone that is not yet clear the piglit
gl-1.0-rendermode-feedback makes use of the LLVM pipe draw module and
fails there with an assertion. Explicietly disabling LLVM fixes this.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add lowering UBO access to r600 specific codes
Gert Wollny [Fri, 27 Dec 2019 16:49:27 +0000 (17:49 +0100)]
r600/sfn: Add lowering UBO access to r600 specific codes

r600 reads vec4 from the UBO, but the offsets in nir are evaluated to the component.
If the offsets are not literal then all non-vec4 reads must resolve the component
after reading a vec4 component (TODO: figure out whether there is a consistent way
to deduct the component that is actually read).

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add GDS instructions
Gert Wollny [Fri, 27 Dec 2019 16:49:27 +0000 (17:49 +0100)]
r600/sfn: Add GDS instructions

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add compute shader skeleton
Gert Wollny [Fri, 27 Dec 2019 16:49:27 +0000 (17:49 +0100)]
r600/sfn: Add compute shader skeleton

This adds some very basic compute shader support.

v2: fix compilation with gcc-6

v3: rebase: correct barrier intrinstic

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add VS for TCS shader skeleton
Gert Wollny [Fri, 27 Dec 2019 16:49:27 +0000 (17:49 +0100)]
r600/sfn: Add VS for TCS shader skeleton

This adds the VS shader type that handles the output to tesselation shaders

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add support for geometry shader
Gert Wollny [Fri, 27 Dec 2019 16:49:27 +0000 (17:49 +0100)]
r600/sfn: Add support for geometry shader

v2: fix compilation with gcc-6

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: add emitVertex instructions
Gert Wollny [Fri, 27 Dec 2019 16:49:27 +0000 (17:49 +0100)]
r600/sfn: add emitVertex instructions

More preparation for GS support

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add MemRingOut instructions
Gert Wollny [Fri, 27 Dec 2019 16:49:27 +0000 (17:49 +0100)]
r600/sfn: Add MemRingOut instructions

Preparing support for Geometry shaders.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add a load GDS result instruction
Gert Wollny [Fri, 27 Dec 2019 16:49:27 +0000 (17:49 +0100)]
r600/sfn: Add a load GDS result instruction

This is required to read results for atomic SSBO  instructions

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add lowering arrays to scratch and according instructions
Gert Wollny [Fri, 27 Dec 2019 16:49:26 +0000 (17:49 +0100)]
r600/sfn: Add lowering arrays to scratch and according instructions

Make use of the scratch space for arrays that are larger then 100 elements.
Since for IO r600 is vector based, there is a bit of a scratch space waste
here for arrays that use types smaller then vec4.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: add register remapping
Gert Wollny [Fri, 27 Dec 2019 16:49:26 +0000 (17:49 +0100)]
r600/sfn: add register remapping

Make use of the live range evaluation to merge registers. Since the
live ranges are evaluated for register indices, the algorithm is not
optimal, but for most piglits up to glsl-3.3 it does the job.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: add live range evaluation for the GPR
Gert Wollny [Fri, 27 Dec 2019 16:49:26 +0000 (17:49 +0100)]
r600/sfn: add live range evaluation for the GPR

The algoritm is basically a copy of the TGSI implementation without the
array bits.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add the WaitAck instruction
Gert Wollny [Fri, 27 Dec 2019 16:49:26 +0000 (17:49 +0100)]
r600/sfn: Add the WaitAck instruction

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add the VS in and FS out vectorization
Gert Wollny [Fri, 27 Dec 2019 16:49:26 +0000 (17:49 +0100)]
r600/sfn: Add the VS in and FS out vectorization

Since the nir default implementation doesn't support vectorizing the VS
inputs and FS outputs, additional lowering passes are added here to do
just that. The work is based on the Timothy Arceri's related work.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600: enable NIR backend DEBUG flag for supported architectures
Gert Wollny [Sat, 28 Dec 2019 14:34:43 +0000 (15:34 +0100)]
r600: enable NIR backend DEBUG flag for supported architectures

When NIR is enabled, a few features that are not yet supported will be
explicitely disabled.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600/sfn: Add a basic nir shader backend
Gert Wollny [Sun, 1 Dec 2019 19:38:07 +0000 (20:38 +0100)]
r600/sfn: Add a basic nir shader backend

This commit adds support for vertex and fragment shaders from NIR, and
support for most TEX and ALU instructions.

Thanks Dave Airlied for adding support for a number of ALU instructions.

v2: fix compilation with gcc-6
v3: rebase: use mesa/core glsl_type_size function

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600: Update state code to accept NIR shaders
Gert Wollny [Sun, 1 Dec 2019 18:11:19 +0000 (19:11 +0100)]
r600: Update state code to accept NIR shaders

v2: Correct commit message (Konstantin Kharlamov)

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600: Add NIR compiler options
Gert Wollny [Sat, 28 Dec 2019 14:34:54 +0000 (15:34 +0100)]
r600: Add NIR compiler options

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600: Increase space for IO values to agree with PIPE_MAX_SHADER_IN/OUTPUTS
Gert Wollny [Sat, 28 Dec 2019 14:35:03 +0000 (15:35 +0100)]
r600: Increase space for IO values to agree with PIPE_MAX_SHADER_IN/OUTPUTS

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agor600: force new CF with TEX only if any texture value is written
Gert Wollny [Mon, 25 Nov 2019 18:30:00 +0000 (19:30 +0100)]
r600: force new CF with TEX only if any texture value is written

This works aound splitting the CF when the gradient is set.

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>

4 years agosvga: Use pipe_shader_state_from_tgsi to set shader state
Neha Bhende [Tue, 10 Dec 2019 07:52:29 +0000 (13:22 +0530)]
svga: Use pipe_shader_state_from_tgsi to set shader state

Use pipe_shader_state_from_tgsi() to set shader state for transformed
shader so that we get all correct data for respective shader state.

This fixes several regressed glretrace, piglit crashes found during merging
upsteam mesa

Fixes: bf12bc2dd7a2 (draw: add nir info gathering and building support)
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
4 years agosvga: fix size of format_conversion_table[]
Neha Bhende [Mon, 10 Feb 2020 18:39:51 +0000 (10:39 -0800)]
svga: fix size of format_conversion_table[]

Since we are now using sparse matrix for format_conversion_table,
we have to make sure we have last entry in table which gives the
sense of required size of format_conversion_table

Fixes: 84db6ba7 ("svga: Drop unsupported formats from the format table")
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
4 years agogallium/swr: simplify environmental variabled expansion code
Krzysztof Raszkowski [Mon, 10 Feb 2020 15:24:10 +0000 (16:24 +0100)]
gallium/swr: simplify environmental variabled expansion code

There were 2 versions of code doing the same thing.
Since std::regexp are locale-sensitive better is to leave old
good way to do this.

Reviewed-by: Jan Zielinski <jan.zielinski@intel.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3761>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3761>

4 years agoaco: fix waiting for scalar stores before "writing back" data on GFX8-GFX9
Samuel Pitoiset [Fri, 7 Feb 2020 15:33:35 +0000 (16:33 +0100)]
aco: fix waiting for scalar stores before "writing back" data on GFX8-GFX9

Seems required also on GFX8-GFX9 to achieve correct behaviour. This
is an undocumented behaviour but it makes real sense to me.

pipeline-db on GFX9:
Totals from affected shaders:
SGPRS: 1018 -> 1018 (0.00 %)
VGPRS: 516 -> 516 (0.00 %)
Code Size: 40516 -> 40636 (0.30 %) bytes
Max Waves: 280 -> 280 (0.00 %)

This fixes some sort of sun flickering with Assassins Creed Origins.

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2488
Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3750>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3750>

4 years agoVulkan overlay: use the corresponding image index for each swapchain
Georg Lehmann [Thu, 6 Feb 2020 21:38:35 +0000 (22:38 +0100)]
Vulkan overlay: use the corresponding image index for each swapchain

pImageIndices should be a pointer to the current image index
otherwise every swapchain but the first one could have a wrong image index

Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3741>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3741>

4 years agozink: only inspect dual-src limit if feature enabled
Erik Faye-Lund [Tue, 4 Feb 2020 10:21:58 +0000 (11:21 +0100)]
zink: only inspect dual-src limit if feature enabled

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3689>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3689>

4 years agozink: emit blend-target index
Erik Faye-Lund [Tue, 4 Feb 2020 10:12:25 +0000 (11:12 +0100)]
zink: emit blend-target index

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3689>

4 years agozink: replace unset buffer with a dummy-buffer
Erik Faye-Lund [Sat, 1 Feb 2020 16:38:30 +0000 (17:38 +0100)]
zink: replace unset buffer with a dummy-buffer

This fixes a crash in spec@!opengl 1.1@ppgtt_memory_alignment

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3673>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3673>

4 years agogitlab-ci: disable a630 tests as mesa-cheza is down (again)
Samuel Pitoiset [Mon, 10 Feb 2020 08:55:27 +0000 (09:55 +0100)]
gitlab-ci: disable a630 tests as mesa-cheza is down (again)

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3758>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3758>

4 years agoradeonsi: don't report that multi-plane formats are supported
Marek Olšák [Wed, 29 Jan 2020 22:25:45 +0000 (17:25 -0500)]
radeonsi: don't report that multi-plane formats are supported

Fixes: a554b45d - st/mesa: don't lower YUV when driver supports it natively
Closes: #2376
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3632>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3632>

4 years agozink: fixup sampler-usage
Erik Faye-Lund [Fri, 31 Jan 2020 17:59:48 +0000 (18:59 +0100)]
zink: fixup sampler-usage

It seems I got this stuff all wrong, and looked at driver_location
rather than the binding. But since we mess with the binding, we need to
adjust things a bit to get things right.

This still isn't great as-is, but it seems to work. In the future, we
should move to having samplers always at bindings 0 and up, and just
update the bindings that are used by either of the stages. But this
band-aid should be OK for now.

This fixes 0AD for me.

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3668>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3668>

4 years agozink: lower away fdph
Erik Faye-Lund [Fri, 31 Jan 2020 17:24:42 +0000 (18:24 +0100)]
zink: lower away fdph

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3668>

4 years agoetnaviv: enable texture upload memory throttling
Christian Gmeiner [Fri, 7 Feb 2020 10:24:55 +0000 (11:24 +0100)]
etnaviv: enable texture upload memory throttling

Fixes oom-killer during piglit's streaming-texture-upload on a
SolidRun CuBox-i with 2GB of RAM.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3745>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3745>

4 years agofreedreno/ir3: Fold const only when the type is float
Hyunjun Ko [Thu, 7 Nov 2019 05:32:34 +0000 (05:32 +0000)]
freedreno/ir3: Fold const only when the type is float

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3737>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3737>

4 years agofreedreno/ir3: put the conversion back for half const to the right place.
Hyunjun Ko [Thu, 7 Nov 2019 05:28:41 +0000 (05:28 +0000)]
freedreno/ir3: put the conversion back for half const to the right place.

The previous commit leads to match immed values unexpectedly.

This makes constlen for each shader including bvert wrong.
Also fixes atan2 for mediump deqp tests.

Fixes: cbd1f47433b ("freedreno/ir3: convert back to 32-bit values for half constant registers.")
v2: Move conversion up above fabs/fneg modifier handling as well.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3737>

4 years agofreedreno/ir3: Add cat4 mediump opcodes
Hyunjun Ko [Fri, 1 Nov 2019 08:34:54 +0000 (08:34 +0000)]
freedreno/ir3: Add cat4 mediump opcodes

v2: Reworked to assign half-opcodes in ir3_ra.c (krh).

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3737>

4 years agofreedreno/ir3: fold const conversion into consumer
Rob Clark [Thu, 20 Jun 2019 16:31:00 +0000 (16:31 +0000)]
freedreno/ir3: fold const conversion into consumer

A sequence like:

  (nop3)cov.f32f16 hr0.x, c0.x
  mul.f hr4.y, hr1.z, hr0.x

can be turned into:

  mul.f hr4.y, hr1.z, hc0.x

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3737>

4 years agofreedreno/ir3: fix printing half constant registers.
Hyunjun Ko [Fri, 1 Nov 2019 03:10:38 +0000 (03:10 +0000)]
freedreno/ir3: fix printing half constant registers.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3737>

4 years agofreedreno/ir3: Set IR3_REG_HALF flag on src as well in immediate MOV
Kristian H. Kristensen [Fri, 10 Jan 2020 21:59:43 +0000 (13:59 -0800)]
freedreno/ir3: Set IR3_REG_HALF flag on src as well in immediate MOV

This lets is_same_type_reg() recognize that the dst and src of the
immediate MOV are the same and unblocks fp16 constant propagation.

Signed-off-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3737>

4 years agodocs: Mark 20.0-rc2 as done
Dylan Baker [Fri, 7 Feb 2020 17:02:02 +0000 (09:02 -0800)]
docs: Mark 20.0-rc2 as done

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3751>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3751>

4 years agofreedreno: android: fix build of perfcounters.
Martin Fuzzey [Thu, 6 Feb 2020 18:07:16 +0000 (19:07 +0100)]
freedreno: android: fix build of perfcounters.

Some dependencies were missing on android causing a build failure.

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3736>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3736>

4 years agofreedreno: android: add a6xx-pack.xml.h generation to android build
Martin Fuzzey [Thu, 6 Feb 2020 18:05:36 +0000 (19:05 +0100)]
freedreno: android: add a6xx-pack.xml.h generation to android build

The generation of a6xx-pack.xml.h was missing in the android build scripts
leading to a build failure.

Signed-off-by: Martin Fuzzey <martin.fuzzey@flowbird.group>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3736>

4 years agofreedreno: android: fix build failure on android due to python version
Martin Fuzzey [Thu, 6 Feb 2020 18:08:10 +0000 (19:08 +0100)]
freedreno: android: fix build failure on android due to python version

The freedreno gen_header.py script now only works under python3.
It contains a "print()" call which prints a blank line under python3
but prints "()" under python2.7.

However the Android build currently uses python2.

This leads to incorrect code generation and a later build error.

.../STATIC_LIBRARIES/libfreedreno_registers_intermediates/registers/adreno_common.xml.h:163:2: error: expected identifier or '('
()

Fix this by adding MESA_PYTHON3 and using it for the freedreno scripts.

Signed-off-by: Martin Fuzzey <martin.fuzzey@flowbird.group>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3736>

4 years agogallium/swr: Fix llvm11 compilation issues
Krzysztof Raszkowski [Fri, 7 Feb 2020 14:02:25 +0000 (15:02 +0100)]
gallium/swr: Fix llvm11 compilation issues

Reviewed-by: Jan Zielinski <jan.zielinski@intel.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3747>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3747>

4 years agoVulkan Overlay: Don't try to change the image layout to present twice
Georg Lehmann [Thu, 6 Feb 2020 21:29:42 +0000 (22:29 +0100)]
Vulkan Overlay: Don't try to change the image layout to present twice

The render pass already does the transition.
The pipeline barrier is still needed to transfer the queue family ownership.

Fixes: 320b0f66c274 ("vulkan/overlay: bounce image back to present layout")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3740>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3740>

4 years agoaco: do not use ds_{read,write}2 on GFX6
Samuel Pitoiset [Fri, 7 Feb 2020 11:53:31 +0000 (12:53 +0100)]
aco: do not use ds_{read,write}2 on GFX6

According to LLVM, these instructions have a bounds checking bug.
LLVM only uses them on GFX7+.

This fixes broken geometry in Assassins Creed Origins.

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2489
Fixes: 4a553212fa1 ("radv: enable ACO support for GFX6")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3746>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3746>

4 years agointel/vec4: fix valgrind errors with vf_values array
Tapani Pälli [Tue, 4 Feb 2020 12:58:17 +0000 (14:58 +0200)]
intel/vec4: fix valgrind errors with vf_values array

Fixes valgrind errors introduced since commit a8ec4082.

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2346
Fixes: a8ec4082 ("nir+vtn: vec8+vec16 support")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3691>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3691>

4 years agolima/parser: Change value name in RSW parser
Andreas Baierl [Thu, 6 Feb 2020 10:41:35 +0000 (11:41 +0100)]
lima/parser: Change value name in RSW parser

Second value of SHADER_ADDRESS is the length of the first instruction
in the shader, so give it a better name.

Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com
Signed-off-by: Andreas Baierl <ichgeh@imkreisrum.de>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3619>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3619>

4 years agolima/parser: Extend AUX0 findings
Andreas Baierl [Wed, 29 Jan 2020 12:10:26 +0000 (13:10 +0100)]
lima/parser: Extend AUX0 findings

Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Andreas Baierl <ichgeh@imkreisrum.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3619>

4 years agolima/parser: Fix RSW depth test parsing
Andreas Baierl [Wed, 29 Jan 2020 11:56:10 +0000 (12:56 +0100)]
lima/parser: Fix RSW depth test parsing

Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Andreas Baierl <ichgeh@imkreisrum.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3619>

4 years agoi965: remove duplicated comment
Leandro Ribeiro [Tue, 22 Oct 2019 00:58:12 +0000 (21:58 -0300)]
i965: remove duplicated comment

Signed-off-by: Leandro Ribeiro <leandrohr@riseup.net>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2416>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2416>

4 years agoci: Drop turnip opt-in option
Kristian H. Kristensen [Thu, 6 Feb 2020 22:49:57 +0000 (14:49 -0800)]
ci: Drop turnip opt-in option

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3742>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3742>

4 years agollvmpipe: advertise 4 vertex streams
Dave Airlie [Thu, 23 Jan 2020 06:20:20 +0000 (16:20 +1000)]
llvmpipe: advertise 4 vertex streams

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3530>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3530>

4 years agodraw: don't emit vertex to streams with no outputs
Dave Airlie [Thu, 23 Jan 2020 07:17:21 +0000 (17:17 +1000)]
draw: don't emit vertex to streams with no outputs

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3530>

4 years agodraw: emit multiple streams to streamout.
Dave Airlie [Thu, 23 Jan 2020 06:19:25 +0000 (16:19 +1000)]
draw: emit multiple streams to streamout.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3530>

4 years agodraw/gs: track emitted prims + verts per stream.
Dave Airlie [Thu, 23 Jan 2020 06:18:29 +0000 (16:18 +1000)]
draw/gs: track emitted prims + verts per stream.

This adds tracking of the emitted prims/verts per-stream.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3530>

4 years agodraw: change geom shader output to an array of outputs.
Dave Airlie [Thu, 23 Jan 2020 06:17:25 +0000 (16:17 +1000)]
draw: change geom shader output to an array of outputs.

Instead of a single output ptr, pass in one per output stream.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3530>

4 years agogallivm/nir: add support for multiple vertex streams
Dave Airlie [Thu, 23 Jan 2020 06:15:50 +0000 (16:15 +1000)]
gallivm/nir: add support for multiple vertex streams

This adds support to the nir shader build for multiple vertex streams
we store separate stats for each stream, then write them out in the epilogue.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3530>

4 years agogallivm/swr: add stream_id to geom epilogue emit
Dave Airlie [Thu, 23 Jan 2020 06:13:24 +0000 (16:13 +1000)]
gallivm/swr: add stream_id to geom epilogue emit

We want to pass a stream in here so we can write out separate
prim/vertex counts for each stream at the end.

This also adds an ignore any stream option so we can stage more code

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3530>

4 years agollvmpipe/query: add support for indexed queries
Dave Airlie [Thu, 23 Jan 2020 05:48:46 +0000 (15:48 +1000)]
llvmpipe/query: add support for indexed queries

This adds support for the queries needed for gpu_shader5 vertex streams

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3530>