Bas Nieuwenhuizen
47ca0f537d
radv: Pass DCC alignment to application.
...
Signed-off-by: Bas Nieuwenhuizen <basni@google.com >
Cc: "17.0" <mesa-stable@lists.freedesktop.org >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Andres Rodriguez <andresx7@gmail.com >
2017-02-07 01:19:22 +01:00
Bas Nieuwenhuizen
eb01b20cc4
radv: Pass CMASK alignment to application.
...
CMASK alignment can be greater than image data alignment, so pass
it to the app so that it knows what alignment to backing memory
should have.
Signed-off-by: Bas Nieuwenhuizen <basni@google.com >
Cc: <mesa-stable@lists.freedesktop.org >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-02-07 01:18:53 +01:00
Dave Airlie
a864ef7f48
radv/ac: avoid the fmask path when doing txs.
...
This fixes the vulkan samples deferredmultisampling test.
Cc: "17.0" <mesa-stable@lists.freedesktop.org >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-06 22:57:52 +00:00
Dave Airlie
13a28ff236
radeon/ac: move common llvm build functions to a separate file.
...
Suggested by Marek.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-07 05:46:35 +10:00
Dave Airlie
106a51440d
radv: fix shared memory load/stores.
...
If we have an indirect index here we need to scale it by attribute slots
e.g. is this is vec2[256] then we get an indir_index in the 0.255 range
but the vec2 are aligned inside vec4 slots. So scale the indir index,
then extract the channels.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Cc: "17.0" <mesa-stable@lists.freedesktop.org >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-03 19:53:03 +00:00
Dave Airlie
a1a8aef4c9
radv/ac: correctly size shared memory usage.
...
We count the number of slots used, but slots are vec4 sized,
so we have to scale by 16 not 4.
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Cc: "17.0" <mesa-stable@lists.freedesktop.org >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-03 19:52:13 +00:00
Dave Airlie
66463b7f75
radv: fix compute shared memory stores since 64-bit.
...
These regressed and caused doom to stop loading.
Fixes:
03724af26 radv/ac: Implement Float64 load/store var.
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-03 19:51:52 +00:00
Dave Airlie
6cc3c46f58
radv/ac: move to using shared emit_ddxy code.
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-03 09:54:04 +10:00
Dave Airlie
c9a2fc3679
radeonsi/ac: move most of emit_ddxy to shared code.
...
We can reuse this in radv.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-03 09:54:04 +10:00
Dave Airlie
278d5ef70a
radv/ac: use shared thread id code
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-03 09:54:04 +10:00
Dave Airlie
c5f0a56aeb
radeonsi/ac: move get thread id to shared code.
...
radv will use this.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-03 09:54:04 +10:00
Dave Airlie
1c5c268a8a
radv/ac: migrate to using shared code for some load/store stuff.
...
This migrates to the code shared with radeonsi.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-03 09:54:04 +10:00
Dave Airlie
b3c28942c7
radeonsi/ac: move tbuffer store and buffer load to shared code.
...
These are all reuseable by radv.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-03 09:54:04 +10:00
Dave Airlie
a9773311f6
radeonsi/ac: move a bunch of load/store related things to common code.
...
These are all shareable with radv, so start migrating them to the
common code.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-03 09:54:04 +10:00
Mauro Rossi
9c45bb731c
android: fix llvm, elf dependencies for M, N releases
...
These changes set the correct llvm version and elf include path
which differ for Marshmallow and Nougat
Cc: "17.0" <mesa-stable@lists.freedesktop.org >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
2017-02-01 23:01:35 +00:00
Dave Airlie
cda9f3d8ec
radv: handle VK_QUEUE_FAMILY_IGNORED in image transitions (v3)
...
The CTS tests at least are using this, and we were totally
ignoring it.
This hopefully fixes the bouncing multisample CTS tests.
v2: get family mask in ignored case from command buffer.
v3: only change things in one place, use logic from Bas.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-02 08:25:04 +10:00
Dave Airlie
fa316ed02f
radv/ac: handle clip/cull distance sizing in geometry shader outputs
...
Otherwise we were writing these as 4 components, and things went bad.
Fixes (the remaining):
dEQP-VK.clipping.user_defined.*.vert_geom.*
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-02 08:25:04 +10:00
Dave Airlie
230e308ff9
radv/ac: add const_index to fetch index for gs inputs
...
This fixes clip distance fetches as they are single item loads
with a const_index like float[1].
Fixes:
dEQP-VK.clipping.user_defined.*.vert_geom.[0-6]
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-02 08:25:04 +10:00
Dave Airlie
dc68b920df
radeonsi/ac: move frag interp emission code to shared llvm code.
...
This code should be used in radv, so move it to a shared location
in advance of doing that.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-02 08:24:53 +10:00
Bas Nieuwenhuizen
f5f8eb2c7c
radv: Enable VK_KHR_shader_draw_parameters.
...
Signed-off-by: Bas Nieuwenhuizen <basni@google.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net >
2017-02-01 19:49:40 +01:00
Bas Nieuwenhuizen
cf8a11c1ba
radv: Pass draw index to shader.
...
Signed-off-by: Bas Nieuwenhuizen <basni@google.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net >
2017-02-01 19:49:40 +01:00
Bas Nieuwenhuizen
80f4331ed1
radv/ac: Add draw index support.
...
Signed-off-by: Bas Nieuwenhuizen <basni@google.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net >
2017-02-01 19:49:40 +01:00
Bas Nieuwenhuizen
798ae37cc9
radv: Enable Float64 support.
...
Signed-off-by: Bas Nieuwenhuizen <basni@google.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-02-01 01:09:34 +01:00
Bas Nieuwenhuizen
441ee1e65b
radv/ac: Implement Float64 SSBO loads.
...
Signed-off-by: Bas Nieuwenhuizen <basni@google.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-02-01 01:09:34 +01:00
Bas Nieuwenhuizen
bb1ce63002
radv/ac: Implement Float64 UBO loads.
...
Signed-off-by: Bas Nieuwenhuizen <basni@google.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-02-01 01:09:29 +01:00
Bas Nieuwenhuizen
03724af262
radv/ac: Implement Float64 load/store var.
...
Signed-off-by: Bas Nieuwenhuizen <basni@google.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-02-01 01:09:05 +01:00
Bas Nieuwenhuizen
91074bb11b
radv/ac: Implement Float64 SSBO stores.
...
No f16 support as I'm not quite sure about alignment yet.
Signed-off-by: Bas Nieuwenhuizen <basni@google.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-02-01 01:09:05 +01:00
Bas Nieuwenhuizen
29577b2123
radv/ac: Add core Float64 support.
...
Signed-off-by: Bas Nieuwenhuizen <basni@google.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-02-01 01:09:05 +01:00
Dave Airlie
8477aa71d9
radv/ac: apply slice rounding to 1d arrays as well.
...
Fixes:
dEQP-VK.glsl.texture_functions.texture.*1darray*
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Cc: "17.0" <mesa-stable@lists.freedesktop.org >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 11:13:15 +10:00
Dave Airlie
3882f3da22
radv/geom: check if esgs and gsvs ring exists before filling geom rings
...
There are some corner cases where you end up with an esgs ring, but no
gsvs ring, test for both before dereferencing.
Fixes:
dEQP-VK.geometry.emit.points_emit_0_end_0
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 11:13:15 +10:00
Dave Airlie
723941bb3d
radv: enable geometryShader and multiViewport capabilities.
...
This enables geometry shader support on radv.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:30:53 +10:00
Dave Airlie
ca822e1b7c
radv: handle layer export from vs->fs properly
...
Fixes:
dEQP-VK.geometry.layered.1d_array.fragment_layer
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:30:49 +10:00
Dave Airlie
c9c8ae1fd3
radv: emit esgs itemsize register.
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:30:46 +10:00
Dave Airlie
77ec78669a
radv: handle prim id inputs to fragment shader.
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:30:41 +10:00
Dave Airlie
105ce24d46
radv: emit geometry shaders to hardware
...
This emits the compiled geometry shader and other state registers.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:30:37 +10:00
Dave Airlie
1fa5b755c2
radv: emit geometry ring size and pointers via preamble (v2)
...
This uses the scratch infrastructure to handle the esgs
and gsvs rings.
(this replaces the old code that did this with patching).
v2: fix correct ring sizes, reset sizes (Bas)
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:30:19 +10:00
Dave Airlie
8f41fe4389
radv: add gs ring size calculations to pipeline.
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:30:15 +10:00
Dave Airlie
99936d3606
radv: add pipeline creation support for geometry shaders (v2.1)
...
This adds gs copy shader support to the pipeline cache, and few
geometry related changes.
v2: rebase for spill changes.
v2.1: fix incorrect pipeline destruction.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:30:10 +10:00
Dave Airlie
fd4ea9e62d
radv/ac: handle primitive id
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:30:08 +10:00
Dave Airlie
4ec294adce
radv/ac: handle emitting vertex outputs to esgs ring.
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:30:05 +10:00
Dave Airlie
ac642c6195
radv/ac: handle gs inputs
...
This handles geometry shader inputs written by the vertex (es) shader
to the esgs ring.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:30:01 +10:00
Dave Airlie
80cdf2c17e
radv/ac: add geom input support to get deref offset.
...
This just adds the API and fixes up the callers.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:29:59 +10:00
Dave Airlie
23999a363b
radv/ac: handle invocation and primitive id intrinsics
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:29:55 +10:00
Dave Airlie
63fa6c6eb4
radv/ac: handle geometry emit vertex and end prim intrinsics.
...
This handles emitting things to the gsvs ring, and sending the
correct GS msgs.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:29:52 +10:00
Dave Airlie
2a56186d57
radv/ac: handle emitting gs epilogue
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:29:48 +10:00
Dave Airlie
a615a01942
radv/ac: add copy shader creation
...
This create the gs copy shader and compiles it.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:29:40 +10:00
Dave Airlie
09cd037ca4
radv/ac: setup function parameters for vs as es and copy shader.
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:29:33 +10:00
Dave Airlie
e1e9301b2a
radv: pass some necessary gs info back to state handling.
...
We need this info to program some registers.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:29:30 +10:00
Dave Airlie
68a77411e1
radv: emit vertex shader to correct hw block.
...
This emits the shader to the ES block in the correct case.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:29:27 +10:00
Dave Airlie
2a57bddd4c
radv/ac: propogate as_es flag into shader info from key.
...
This just places the flag into the shader info so we can use it from
the driver after we create the shader.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-01-31 09:29:23 +10:00