URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5ae3656890fc65a2a44f5795749f265612ace5b6
Author: Timur Kristóf <[email protected]>
Date: Mon Oct 5 15:30:18 2020 +0200
aco/ngg: Calculate workgroup size of NGG shaders.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=61280bb4b66e4ff7db393f7c4db368b65bc391fa
Author: Timur Kristóf <[email protected]>
Date: Fri Oct 2 17:10:43 2020 +0200
aco/ngg: Allocate NGG GS space early for const vertex/primitive counts.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e8a0409d01e94ea03ae1b994e14e2c90bb236238
Author: Timur Kristóf <[email protected]>
Date: Fri Oct 2 14:31:40 2020 +0200
aco/ngg: Use more efficient LDS layout to help reduce bank conflicts.
The LLVM backend has a trick which helps reduce LDS bank conflicts
by swizzling the LDS address where each vertex is emitted.
This commit implements the same thing for ACO.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9bf92d4357179c197256dae1e2b02ed4ad1f0fae
Author: Timur Kristóf <[email protected]>
Date: Thu Oct 1 16:59:18 2020 +0200
radv/aco: Enable NGG GS by default.
ACO NGG GS now supports everything we need except streamout
(aka. transform feedback), but we don't use NGG anyway when
streamout is needed.
Also add a note to the new features txt.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Samuel Pitoiset <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=dd73719856c0e571d2d0863609e2175a1f0f8de6
Author: Timur Kristóf <[email protected]>
Date: Thu Oct 1 13:50:43 2020 +0200
aco/ngg: Add shader query support to NGG GS.
In each GS thread, we calculate the number of "real" primitives that
were emitted (points, lines, triangles, not strips). Then we
accumulate the number of "real" primitives emitted by the
entire threadgroup in GDS.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=df62c8fbeac1742a606d39239085e4f1d771253c
Author: Timur Kristóf <[email protected]>
Date: Fri Oct 2 10:29:27 2020 +0200
aco/ngg: Place workgroup barrier outside control flow for NGG GS.
Merged shaders have a workgroup barrier which makes sure that
the first half is completed in every wave before the 2nd half
is started.
This barrier is located in divergent control flow, so that waves
that don't have any invocations in the 2nd half can finish as early
as possible. This is problematic for NGG GS because it has more
workgroup barriers after the 2nd half.
So, for NGG GS we need to put the barrier outside
control flow because otherwise the waves that have 0 GS threads
won't be able to wait for the waves which have non-zero GS threads.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1129575d5ed9f88a2dce79cf6a2e0183a99676a2
Author: Timur Kristóf <[email protected]>
Date: Fri Oct 2 10:29:06 2020 +0200
aco/ngg: Implement NGG GS output.
We store emitted GS vertices in LDS.
Then, at the end of the shader, the emitted vertices are compacted
and each thread loads a single vertex from LDS in order to export
a primitive as needed, and the vertex attributes.
The reason this is done is because there is an impedance mismatch
between how API GS and the NGG HW works. API GS can emit an arbitrary
number of vertices and primites in each thread, but NGG HW can only
export one vertex per thread.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=62b5012ec35358a7c109746bfe1da33ca1b04f24
Author: Timur Kristóf <[email protected]>
Date: Thu Sep 10 18:37:01 2020 +0200
aco/ngg: Implement workgroup reduce / exclusive scan for NGG GS.
This function calculates two things at once:
1. The total number of vertices emitted by the threadgroup.
2. Exclusive scan of emitted vertex count accross the threadgroup.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c29e288fb51c68200211929f5e877b5c66ff9599
Author: Timur Kristóf <[email protected]>
Date: Thu Sep 10 18:36:04 2020 +0200
aco/ngg: Create LDS layout for NGG GS.
For NGG GS, we need to store the following in LDS:
1. The ESGS ring, similarly to legacy ESGS.
2. Emitted vertices from the GS threads.
3. Temporary space used by the workgroup scan.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2680329fb7671917b03be5939dea974648313678
Author: Timur Kristóf <[email protected]>
Date: Thu Sep 10 18:36:27 2020 +0200
aco/ngg: Setup NGG GS.
Make it possible for ACO to recognize when to use HW NGG GS.
Also add a few notes about the various GS stages in the comments.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9c3d8404deaab24e1a4186035398250dbd6f542b
Author: Timur Kristóf <[email protected]>
Date: Mon Sep 14 09:58:56 2020 +0200
aco/ngg: Allow NGG GS to create VS exports.
NGG GS need to use the same instructions to export vertex
attributes at the end.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b67878f32830d25d37fc1c6930f45a95c6cd4648
Author: Timur Kristóf <[email protected]>
Date: Mon Sep 14 09:58:38 2020 +0200
aco/ngg: Allow NGG GS to load per-vertex GS inputs.
They work the same way as in legacy GS, so we can reuse that.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8f25d9f821d6f7770b30e8149f502a56325c6540
Author: Timur Kristóf <[email protected]>
Date: Wed Sep 30 14:41:54 2020 +0200
aco/ngg: Allow NGG GS to store ES outputs.
We can reuse the existing ES output code.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b57b1a06e424a9629cb129f32db4769ba68c64f5
Author: Timur Kristóf <[email protected]>
Date: Thu Oct 1 18:32:37 2020 +0200
aco/ngg: Clean up and reorganize NGG VS/TES code.
Make the NGG VS/TES code easier to follow, give better names to
some functions and make ngg_nogs_early_prim_export a variable.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3645a3106a06ff1ff823272456182ca9dec1479b
Author: Timur Kristóf <[email protected]>
Date: Wed Sep 30 00:41:12 2020 +0200
aco/ngg: Make primitive export packing less prone to error.
Use lshl_or instead of lshl_add, which makes it more robust in
handling -1 and -2 indices which will now just become null
exports, which is what we want.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0bfe0495c1b15f22a674b0d2d26a48609310f9d3
Author: Timur Kristóf <[email protected]>
Date: Thu Sep 10 18:34:18 2020 +0200
aco/ngg: Refactor ngg_emit_prim_export in preparation for NGG GS.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b08ced08a225250c00f814e7fb4518329ce36f59
Author: Timur Kristóf <[email protected]>
Date: Fri Sep 4 13:38:25 2020 +0200
aco/ngg: Refactor gs_alloc_req in preparation for NGG GS.
Previously, this function inferred the vertex and primitive counts
from the gs_tg_info shader argument, but in case of NGG GS, it will
need to be calculated in runtime.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ecfabfd606903a4ccbc8235ab3503bb149debcf0
Author: Timur Kristóf <[email protected]>
Date: Thu Sep 24 16:01:18 2020 +0200
aco: Add wave-specific opcode for s_lshl and s_flbit.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=57d8799284fecbda30374206da31e87ae153056a
Author: Timur Kristóf <[email protected]>
Date: Tue Sep 29 18:06:44 2020 +0200
aco: Optimize thread_id_in_threadgroup when there is just one wave.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5e31fb49a3be125ba741ba6bcfd3903fa919a216
Author: Timur Kristóf <[email protected]>
Date: Wed Sep 30 14:42:03 2020 +0200
aco: Use thread_id_in_threadgroup helper for ES outputs.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=924f816fe1773532a46bd989b10c6f899c4913e6
Author: Timur Kristóf <[email protected]>
Date: Fri Sep 4 13:35:47 2020 +0200
aco: Extract thread_id_in_threadgroup to a separate function.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b1964ad4d6c9532e3dcac87d163a0131ece5d515
Author: Timur Kristóf <[email protected]>
Date: Mon Sep 14 10:04:40 2020 +0200
aco: Extract lanecount_to_mask to a separate function.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b8e7be08305cfba37cf1ea54be1981ce60c8de9
Author: Timur Kristóf <[email protected]>
Date: Mon Sep 14 09:39:34 2020 +0200
aco: Clarify missing export error message in assembler.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c1d11bb92c95e0fc56a1280acc15893623769ff9
Author: Rhys Perry <[email protected]>
Date: Mon Jul 13 11:52:14 2020 +0100
aco: Add loop creation helpers.
Will be useful for NGG GS and probably testing. The helpers take care of
divergence but not creating correct phis.
Signed-off-by: Rhys Perry <[email protected]>
Reviewed-by: Timur Kristóf <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=17ad2ade82fded0dc19e92b64b96082379ec9daa
Author: Timur Kristóf <[email protected]>
Date: Mon Oct 5 19:35:14 2020 +0200
radv/aco: Use new GS lowering options for ACO with NGG GS.
This makes it easier for ACO to implement NGG GS:
1. No need to keep track of vertex and primitive counts.
2. No need to discard incomplete primitives.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Samuel Pitoiset <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f11f4a2a4da965834cb0867e7ed931bf4aacbc39
Author: Timur Kristóf <[email protected]>
Date: Fri Oct 2 16:10:38 2020 +0200
nir: Add ability to count primitives per stream.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=aac5adc3c2c627f62577431643b822bf20dc6e71
Author: Timur Kristóf <[email protected]>
Date: Fri Oct 2 15:55:32 2020 +0200
nir: Count vertices per stream.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=70b94adddb71d9d12a793b188d0336566504afec
Author: Timur Kristóf <[email protected]>
Date: Wed Jul 15 13:44:39 2020 +0200
nir: Add ability to overwrite incomplete GS primitives.
After each end_primitive and at the end of the shader before emitting
set_vertex_and_primitive_count, we check if the primitive that is being
emitted has enough vertices or not, and we adjust the vertex and
primitive counters accordingly.
As a result, if the backend uses this option, the backend compiler
will not have to worry about discarding the unneeded vertices
and primitives.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c977c369d35eed4de429f76ec6daf7ce95e7d94a
Author: Timur Kristóf <[email protected]>
Date: Tue Jun 16 18:58:39 2020 +0200
nir: Add ability to count emitted GS vertices per primitive.
Add an option to nir_lower_gs_intrinsics so that it can also track
the number of emitted vertices per primitive, not just the total
vertex count.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2be99012e95bd8b0b17b5c06b31723738aaecbd1
Author: Timur Kristóf <[email protected]>
Date: Mon Jun 8 12:16:13 2020 +0200
nir: Add ability to count emitted GS primitives.
Add an option to nir_lower_gs_intrinsics which tells it to track
the number of emitted primitives, not just vertices. Additionally,
also make it per-stream.
Also rename the set_vertex_count intrinsic to
set_vertex_and_primitive_count.
Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964>
_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit