Mike Blumenkrantz
37e7a5e746
zink: unify code for setting resource barriers
...
no functional changes, this code was just duplicated
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5615 >
2020-06-25 12:50:21 +00:00
Samuel Pitoiset
a102896cff
radv: lower 64-bit dfloor on GFX6 for fixing precision issues
...
GFX6 doesn't support v_floor_f64 and the precision of v_fract_f64
which is used to implement 64-bit floor is less than what Vulkan
requires.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5609 >
2020-06-25 12:09:08 +00:00
Samuel Pitoiset
c84f11e7b6
radv: lower 64-bit drcp/dsqrt/drsq for fixing precision issues
...
The hardware precision of v_rcp_f64, v_sqrt_f64 and v_rsq_f64
is less than what Vulkan requires.
This lowers using the Goldschmidt's algorithm to improve precision.
Fixes dEQP-VK.glsl.builtin.precision_double.* on both compiler
backends.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5609 >
2020-06-25 12:09:08 +00:00
Danylo Piliaiev
82b4666783
iris: Honor scanout requirement from DRI
...
Translate PIPE_BIND_SCANOUT as ISL_SURF_USAGE_DISPLAY_BIT,
instead of PIPE_BIND_DISPLAY_TARGET.
PIPE_BIND_DISPLAY_TARGET isn't used for dri images and seem to
be set only for fake winsys buffers (which aren't displayed).
The trouble is that a fake buffer could be multisampled and we
cannot have multisampled surface with display bit.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2313
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4784 >
2020-06-25 11:50:10 +00:00
Pavel Asyutchenko
ec7b55f4cc
vulkan/overlay: fix crash on destroying NULL swapchain
...
Cc: <mesa-stable@lists.freedesktop.org >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5616 >
2020-06-25 10:31:50 +00:00
Samuel Pitoiset
8c962f5f61
gitlab-ci: add parallel-rdp fossils
...
https://github.com/Themaister/parallel-rdp
These fossils contain very large and complex shaders.
The small_*.foz files use 8/16-bit arithmetic.
Only RADV uses Fossilize.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Andres Gomez <agomez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5542 >
2020-06-25 08:03:09 +02:00
Rob Clark
6da0647987
freedreno/ir3/ra: fix pre-color edge case
...
Fixes a case where you have something like:
aVecOutput.z = aScalarInput;
In particular, skipping over things that are not the first component is
wrong.. in the above case the input we need to precolor is the 3rd
component. But we need to adjust the target register according to the
offset.
Fixes android.hardware.nativehardware.cts.AHardwareBufferNativeTests
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5601 >
2020-06-25 04:40:40 +00:00
Jonathan Marek
c5b990f435
turnip: disable early_z for VK_FORMAT_S8_UINT
...
This format doesn't have depth, and apparently having earlyz enabled can
cause issues. Fixes at least these tests:
dEQP-VK.renderpass.suballocation.multisample.s8_uint.samples_*
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5586 >
2020-06-25 03:02:56 +00:00
Jonathan Marek
04148f4411
turnip: fix update_stencil_mask
...
The previous value was not being cleared, resulting in some dynamic stencil
state failures. Fixes these two tests:
dEQP-VK.dynamic_state.ds_state.stencil_params_advanced
dEQP-VK.dynamic_state.ds_state.stencil_params_basic_1
Fixes: 233610f8cf
("turnip: refactor draw states and dynamic states")
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5586 >
2020-06-25 03:02:56 +00:00
Jonathan Marek
9c0ae5704d
turnip: fix empty scissor case
...
Fixes these two tests:
dEQP-VK.draw.scissor.empty_dynamic_scissor_first_draw
dEQP-VK.draw.scissor.empty_static_scissor
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5586 >
2020-06-25 03:02:56 +00:00
Rob Clark
7c008c293d
freedreno: handle batch flush in resource tracking
...
In rare cases, we can get into situations where the tracking of read/
written resources triggers a flush of the current batch.
To handle that, (1) take a reference to the current batch, so it doesn't
disappear under us, and (2) check after resource tracking whether the
current batch was flushed. If it is, we have to re-do the resource
tracking, but since we have a fresh batch, it should not get flushed the
second time around.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3160
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5634 >
2020-06-25 00:55:24 +00:00
Rob Clark
16b4da3ba3
freedreno: split out batch clear tracking helper
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5634 >
2020-06-25 00:55:24 +00:00
Rob Clark
ad136945e6
freedreno: split out batch draw tracking helper
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5634 >
2020-06-25 00:55:24 +00:00
Rob Clark
d74554b167
freedreno: make foreach_bit() declare it's cursor
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5634 >
2020-06-25 00:55:24 +00:00
Jonathan Marek
1fd2bc10dc
turnip: implement VK_EXT_vertex_attribute_divisor
...
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5640 >
2020-06-25 00:10:11 +00:00
Eric Engestrom
8018b4b707
docs: fix 20.1.2 relnotes
...
I manually converted them from html and didn't double-check the
result...
Fixes: e94f81e9df
("docs: Add release notes for 20.1.2")
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5639 >
2020-06-25 01:49:46 +02:00
Eric Engestrom
804c6ee0df
docs: update calendar and link releases notes for 20.1.2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5638 >
2020-06-24 23:07:07 +00:00
Eric Engestrom
e94f81e9df
docs: Add release notes for 20.1.2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5638 >
2020-06-24 23:07:07 +00:00
Rob Clark
3065c4bf92
freedreno/ir3: switch PIPE_CAP_TGSI_TEXCOORD
...
We don't really need the varying remapping, and it seems to somehow
happen twice when shader-cache comes into the picture. But we can
just choose not to have this problem.
Now that everything is using the ir3_point_sprite() helper, we can
flip this pipe cap without it being a massive flag-day.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5595 >
2020-06-24 22:29:28 +00:00
Rob Clark
e6d650353a
freedreno: convert builtin blit VS prog to ureg builder
...
The correct varying semantic to use depends on PIPE_CAP_TGSI_TEXCOORD.
To handle this transition switch it over to ureg builder, and query the
pipe-cap to choose the appropriate semantic.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5595 >
2020-06-24 22:29:28 +00:00
Rob Clark
b5574c5165
freedreno/a3xx: use point-coord helper
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5595 >
2020-06-24 22:29:28 +00:00
Rob Clark
ba6e1514f5
freedreno/a4xx: use point-coord helper
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5595 >
2020-06-24 22:29:28 +00:00
Rob Clark
3e8c6312c7
freedreno/a5xx: use point-coord helper
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5595 >
2020-06-24 22:29:28 +00:00
Rob Clark
a474d48e17
freedreno/a6xx: use point-coord helper
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5595 >
2020-06-24 22:29:28 +00:00
Rob Clark
68d6aa3dd0
freedreno/a6xx: de-duplicate vinterp/vpsrepl state building
...
When we flip the texcoord patch, we'll setup PNTC input slot in the
pre-built interp stateobj, rather than this being a draw-time (slow-
path) built stateobj. But rather than duplicate more of the slow-
path logic, refactor it out into a helper that is reused in both
cases.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5595 >
2020-06-24 22:29:28 +00:00
Rob Clark
022c363cfb
freedreno/ir3: add helper to determine point-coord inputs
...
This will simplify a bit the logic for setting up vinterp/vprepl in the
driver backend, and also avoid it being a flag-day when we switch the
texcoord pipe cap.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5595 >
2020-06-24 22:29:28 +00:00
Jonathan Marek
64c2a10707
turnip: move some logic out of create_render_pass_common
...
CreateRenderPass2 is the common path now, it doesn't make sense to have a
create_render_pass_common. Rename it to tu_render_pass_gmem_config and
move logic not related to gmem config out of it.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5451 >
2020-06-24 22:12:33 +00:00
Jonathan Marek
c9c76f6832
turnip: use RenderPassCreateInfo for render_pass_add_implicit_deps
...
This gets rid of the some unnecessary values that were stored in
tu_render_pass for this. It also makes the render_pass_add_implicit_deps
more generic, with very few references to the tu_render_pass.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5451 >
2020-06-24 22:12:33 +00:00
Jonathan Marek
e4099201bc
turnip: replace a memset(0) with zalloc in CreateRenderPass
...
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5451 >
2020-06-24 22:12:33 +00:00
Jonathan Marek
70046145d1
turnip: translate CreateRenderPass to CreateRenderPass2
...
It doesn't cut down the code size by much, and might not be the ideal for
performance (unless the compiler is unexpectedly smart), but makes it
easier to maintain (no modifying the same code in two places) and will
allow some simplifications since we wont have to worry about trying to
share code between the two versions.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5451 >
2020-06-24 22:12:33 +00:00
Jonathan Marek
01e2893cba
turnip: implement depthBounds
...
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5628 >
2020-06-24 20:55:15 +00:00
Jonathan Marek
a9d866910c
freedreno/registers: a6xx depth bounds test registers
...
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5628 >
2020-06-24 20:55:15 +00:00
Rhys Perry
4fc0499049
aco: remove outdated assert in handle_operands()
...
"target" is no longer expected to be completely inside "swap".
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5626 >
2020-06-24 20:38:35 +00:00
Rhys Perry
7cad27831d
aco: ignore blocked registers when checking edges in get_reg_impl()
...
If the only two registers available are consecutive and used by killed
operands, both of them will be blocked and fail the edge check.
Totals from 903 (0.66% of 135946) affected shaders:
VGPRs: 30892 -> 30884 (-0.03%)
CodeSize: 1584468 -> 1584044 (-0.03%); split: -0.05%, +0.02%
MaxWaves: 14374 -> 14378 (+0.03%)
Instrs: 306482 -> 306399 (-0.03%); split: -0.06%, +0.03%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5626 >
2020-06-24 20:38:35 +00:00
Samuel Pitoiset
91a82d0069
radv: fix checking the return value of cs_finalize()
...
cs_finalize() now returns a Vulkan error code and VK_SUCCESS is 0.
Fixes: 64a92ef7a2
("radv/winsys: Distinguish device/host memory errors.")
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/5629 >
2020-06-24 15:50:06 +02:00
Samuel Pitoiset
86df5283a3
gitlab-ci: update the list of expected failures for Pitcairn
...
These tests have been fixed as part of
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5207 .
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5625 >
2020-06-24 13:09:43 +00:00
Bas Nieuwenhuizen
aa35670fd0
radv: Make radv_alloc_shader_memory static.
...
Just a cleanup.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5578 >
2020-06-24 13:00:02 +00:00
Bas Nieuwenhuizen
64a92ef7a2
radv/winsys: Distinguish device/host memory errors.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5578 >
2020-06-24 13:00:02 +00:00
Bas Nieuwenhuizen
a5cb88eea4
radv: Handle mmap failures.
...
Which can happen if we have to many mmaps active in the process.
CC: <mesa-stable@lists.freedesktop.org >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5578 >
2020-06-24 13:00:02 +00:00
Bas Nieuwenhuizen
04765e6a9a
radv/winsys: Deal with realloc failures in BO lists.
...
Otherwise if realloc fails we silently try to use it. Make recording fail instead.
CC: <mesa-stable@lists.freedesktop.org >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5578 >
2020-06-24 13:00:02 +00:00
Rhys Perry
519ddfd312
aco: improve vectorization of 8/16-bit loads/stores
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5207 >
2020-06-24 10:52:28 +00:00
Rhys Perry
ddffcf3627
aco: fix when sub-dword create_vector operand cannot be placed perfectly
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5207 >
2020-06-24 10:52:28 +00:00
Daniel Schürmann
91fd53884d
aco: don't allow partial copies on GFX6/7
...
These are not supported due to missing SDWA instructions
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5207 >
2020-06-24 10:52:28 +00:00
Daniel Schürmann
76b5d72921
aco: align swap operations to 4 bytes on GFX6/7
...
GFX6/7 can only swap full registers
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5207 >
2020-06-24 10:52:28 +00:00
Rhys Perry
91d7e40176
aco: don't create byte-aligned short loads
...
The ISA docs don't seem to say if this is allowed, so just assume short
loads require short alignment.
In practice, the only situation this should affect are byte-aligned u8vec2
loads.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5207 >
2020-06-24 10:52:28 +00:00
Rhys Perry
c3259b6e6a
aco: add missing bld.scc() in byte_align_scalar()
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5207 >
2020-06-24 10:52:28 +00:00
Rhys Perry
a0f6ca4393
aco: don't store byte-aligned short stores
...
The ISA docs don't seem to say if this is allowed, so just assume short
stores require short alignment.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5207 >
2020-06-24 10:52:28 +00:00
Rhys Perry
a18da83d18
aco: fix copy+paste error in split_buffer_store
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5207 >
2020-06-24 10:52:28 +00:00
Rhys Perry
841fdfcd45
radv/aco,aco: allow SMEM SSBO loads on GFX6/7
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5207 >
2020-06-24 10:52:28 +00:00
Rhys Perry
35b5e1fc7c
aco: allow SMEM for some sub-dword accesses
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5207 >
2020-06-24 10:52:27 +00:00