Samuel Pitoiset
b55919cf2a
ac: add has_gfx9_scissor_bug to ac_gpu_info
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2019-08-27 08:04:32 +02:00
Samuel Pitoiset
63c0b89b8f
ac: add has_rbplus to ac_gpu_info
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2019-08-27 08:04:19 +02:00
Samuel Pitoiset
c08401f035
ac: add has_distributed_tess to ac_gpu_info
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2019-08-27 08:04:11 +02:00
Samuel Pitoiset
a4e6e59db8
radv/gfx10: do not use NGG with NAVI14
...
Cc: 19.2 <mesa-stable@lists.freedesktop.org >
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-08-23 09:54:08 +02:00
Bas Nieuwenhuizen
c037fe5ad1
radv: Disable NGG for geometry shaders.
...
A bunch of remaining issues including some that affect users.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111248
Fixes: ee21bd7440
"radv/gfx10: implement NGG support (VS only)"
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-08-22 12:47:32 +02:00
Bas Nieuwenhuizen
e04761d0f9
radv: Emit VGT_GS_ONCHIP_CNTL for tess on GFX10.
...
Otherwise hangs are possible. This register was already set for
GS and NGG.
Fixes: 5eaed7ecfc
"radv/gfx10: enable support for NAVI10, NAVI12 and NAVI14"
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-08-21 09:51:47 +00:00
Bas Nieuwenhuizen
afad67cd7a
radv: Implement radv_GetPipelineExecutableStatisticsKHR.
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-08-12 23:00:24 +02:00
Bas Nieuwenhuizen
35302f0189
radv: Implement radv_GetPipelineExecutableInternalRepresentationsKHR.
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-08-12 23:00:24 +02:00
Bas Nieuwenhuizen
86864eedd2
radv: Implement radv_GetPipelineExecutablePropertiesKHR.
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-08-12 23:00:24 +02:00
Bas Nieuwenhuizen
8874af8ef4
radv: Keep shader info when needed.
...
This allows enabling the shader info keeping on a per shader basis.
Also disables the cache on a per shader basis.
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-08-12 23:00:24 +02:00
Bas Nieuwenhuizen
5444d3e0c2
radv: Use string for nir dumping.
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Allows us to easily dump all nir shaders for combined variants in
vega and simplifies ownership.
2019-08-12 23:00:24 +02:00
Bas Nieuwenhuizen
d062bec48d
radv: Hash Wave32 settings in shader key.
...
Can result in different shaders.
Fixes: 8a86908e9a
"radv/gfx10: add Wave32 support for vertex, tessellation and geometry shaders"
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-08-12 13:32:18 +00:00
Bas Nieuwenhuizen
035406ecf7
radv: Put wave size in shader options/info.
...
Instead of having the three values everywhere. This is also more
future proof if we want the driver to make those decisions eventually.
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-08-12 13:32:18 +00:00
Bas Nieuwenhuizen
23a9d20997
radv: Avoid VEGA/RAVEN scissor bug in binning.
...
CC: <mesa-stable@lists.freedesktop.org >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-08-08 14:08:21 +02:00
Bas Nieuwenhuizen
4a3f987afd
radv: Avoid binning RAVEN hangs.
...
Mirroring radeonsi.
CC: <mesa-stable@lists.freedesktop.org >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-08-08 14:08:21 +02:00
Bas Nieuwenhuizen
2301b2e029
radv: Do non-uniform lowering before bool lowering.
...
Since it can introduce comparisons.
Fixes: 028ce52739
"radv: Add non-uniform indexing lowering."
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-08-06 15:48:50 +00:00
Samuel Pitoiset
8a86908e9a
radv/gfx10: add Wave32 support for vertex, tessellation and geometry shaders
...
It can be enabled with RADV_PERFTEST=gewave32.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-08-02 09:37:36 +02:00
Samuel Pitoiset
953bbacc23
radv/gfx10: add Wave32 support for fragment shaders
...
It can be enabled with RADV_PERFTEST=pswave32.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-08-02 09:37:34 +02:00
Samuel Pitoiset
c66021069e
radv/gfx10: implement a GE bug workaround
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-31 12:14:29 +02:00
Samuel Pitoiset
9a3fc7b6fa
radv/gfx10: remove an obsolete VGT_REUSE_OFF workaround
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-31 12:14:29 +02:00
Samuel Pitoiset
e041a74588
radv/gfx10: implement a bug workaround for GE_PC_ALLOC
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-31 12:14:29 +02:00
Samuel Pitoiset
ea38565011
radv/gfx10: add Wave32 support for compute shaders
...
It can be enabled with RADV_PERFTEST=cswave32.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-31 09:35:04 +02:00
Samuel Pitoiset
9d7ead6f9b
radv/gfx10: only compile the GS copy shader on-demand
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-30 16:51:30 +02:00
Samuel Pitoiset
a3a4fa1860
radv/gfx10: do not enable NGG if a pipeline uses XFB
...
NGG GS for streamout requires a bunch of work, so enable it with
the legacy path only for now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-24 08:23:34 +02:00
Bas Nieuwenhuizen
3268c806fb
radv/gfx10: Implement bin size calculation.
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-07-23 21:26:59 +02:00
Bas Nieuwenhuizen
4b757697e9
radv/gfx9: Select between depth/color bins based on area.
...
Mirrors radeonsi.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-07-23 21:26:59 +02:00
Bas Nieuwenhuizen
22f2f76789
radv: Generalize binning settings.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-07-23 21:26:59 +02:00
Bas Nieuwenhuizen
793cbf6161
radv/gfx10: Use new scan converter.
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-07-23 21:26:59 +02:00
Bas Nieuwenhuizen
4058b354c5
radv: Set FLUSH_ON_BINNING_TRANSITION.
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-07-23 21:26:59 +02:00
Samuel Pitoiset
6e5e4bf050
radv/gfx10: set BREAK_WAVE_AT_EOI if TES or GS enable the primitive ID
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-07-18 10:37:10 +02:00
Samuel Pitoiset
8c692ff512
radv/gfx10: move emitting VGT_PRIMITIVEID_EN into the NGG path
...
And do not emit VGT_GS_MODE which is unnecessary on GFX10.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-07-18 10:36:38 +02:00
Samuel Pitoiset
63d670e350
radv: fix VGT_GS_MODE if VS uses the primitive ID
...
Found by inspection.
Cc: <mesa-stable@lists.freedesktop.org >
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-18 10:03:12 +02:00
Dave Airlie
de524b2c37
radv: use correct register setter for ngg hw addr
...
this shouldn't matter, but it's good to be correct.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-07-18 10:17:37 +10:00
Samuel Pitoiset
24b1b1f574
radv: add an option for disabling NGG on GFX10
...
Will be useful for testing the legacy path.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-17 15:43:36 +02:00
Samuel Pitoiset
07ff367442
radv/gfx10: implement VK_EXT_post_depth_coverage
...
I did implement this extension a while ago but it didn't work
on pre GFX10 for some reasons. Now all CTS pass.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-17 08:32:39 +02:00
Samuel Pitoiset
edf1af696f
radv/gfx10: fallback to the legacy path if tess and extreme geometry
...
This is unsupported and hangs.
This fixes GPU hangs with
dEQP-VK.tessellation.geometry_interaction.limits.output_required_*.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-17 08:32:33 +02:00
Samuel Pitoiset
ae4b1fc095
radv/gfx10: always build the GS copy shader but uses it on-demand
...
It should be possible to build it on-demand too but it requires
more work. On GFX10, the GS copy shader is required when tess
is enabled with extreme geometry.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-17 08:32:30 +02:00
Samuel Pitoiset
27d91062a8
radv/gfx10: support pixel shaders without exports
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-07-16 10:10:21 +02:00
Samuel Pitoiset
5d5e26230a
radv/gfx10: emit GE_PC_ALLOC
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-12 17:47:11 +02:00
Samuel Pitoiset
df062afa03
radv/gfx10: enable vertex shaders without export parameters
...
GFX10 allows this.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-12 17:47:11 +02:00
Samuel Pitoiset
3f76c0f47c
radv/gfx10: launch 2 compute waves per CU before going onto the next CU
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-12 17:47:11 +02:00
Samuel Pitoiset
e631d65fc6
radv: use ac_get_compute_resource_limits()
...
No behaviour change.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-12 17:47:11 +02:00
Samuel Pitoiset
4e38322dd8
radv/gfx10: fix wrong emission of GE_CNTL
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-12 12:15:08 +02:00
Samuel Pitoiset
a7b7e94085
radv: only enable the GS copy shader stage if GS is enabled
...
Ooops.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-07-11 21:44:44 +02:00
Samuel Pitoiset
5bbcb3f5bc
radv/gfx10: implement support for GS as NGG
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-11 15:45:53 +02:00
Bas Nieuwenhuizen
45b73b3aa9
radv/gfx10: Do not allocate a gs_copy_shader on gfx10.
...
Will use ngg for any gs anyway.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-07-11 15:45:47 +02:00
Samuel Pitoiset
ef5efb40f4
radv/gfx10: fix VGT_SHADER_STAGES_EN for GS as NGG
...
The driver shouldn't set the copy shader bit.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-11 15:45:43 +02:00
Samuel Pitoiset
8bc3ab6f0c
radv/gfx10: fix number of GS invocations for NGG
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-11 15:45:40 +02:00
Samuel Pitoiset
4cadf4309c
radv: compute correct number of input vertices for NGG
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-10 15:17:08 +02:00
Bas Nieuwenhuizen
14291342ec
radv: Add a common member in the union to make things more clear.
...
This clarifies that the struct can be used when the shader can be
one of VS/TES.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-07-09 09:59:07 +00:00