nvk: Enable basic geometry shaders
This enables nvk to render a basic example found here: https://github.com/SaschaWillems/Vulkan/tree/master/examples/geometryshader
Merge request reports
Activity
By setting:
P_IMMD(p, NV9097, SET_DA_PRIMITIVE_RESTART_VERTEX_ARRAY, ENABLE_FALSE);
in nvk_cmd_draw.c : nvk_queue_init_context_draw_state() fixes line/tringle strip test cases and gives us 86.2% success rate on geometry.txt CTS.
Do we need this setting always enabled? I believe we only need NV909_SET_DA_PRIMITIVE_RESTART instead.
Edited by George OuzounoudisBy applying the change in the comment above i get the following results for geometry.txt CTS tests.
Test run totals: Passed: 185/196 (94.4%) Failed: 2/196 (1.0%) Not supported: 9/196 (4.6%) Warnings: 0/196 (0.0%) Waived: 0/196 (0.0%)
Edited by George OuzounoudisIn the tests for !109 (merged) we had a lot of "Not supported" tests due to missing geometry shaders.
Before this MR:
Test run totals: Passed: 5087/8180 (62.2%) Failed: 0/8180 (0.0%) Not supported: 3093/8180 (37.8%) Warnings: 0/8180 (0.0%)
After this MR:
Test run totals: Passed: 5938/8180 (72.6%) Failed: 180/8180 (2.2%) Not supported: 2062/8180 (25.2%) Warnings: 0/8180 (0.0%) Waived: 0/8180 (0.0%)
I have not looked into what is going on with the 180 failed. Could be related to the other MR.
@phomes i have also committed a fix for arrayed IO in !141 (merged). This may fix some more tests.
I cherry-picked 5a173c25 from !141 (merged) but the results are the same
The tests that fail are:
grep 'with_template' binding-model.txt | grep -v 'secondary_cmd_buf\|storage_image[a-z_\.]*3d'\|ray_query\|ray_tracing | grep 'geometry' | grep 'uniform_buffer\|storage_buffer'
We have to analyze further why they fail.
Edited by George OuzounoudisFor the binding_model.shader_access.primary_cmd_buf.uniform_buffer.geometry* tests i get the following strange behaviour.
Changing the following shader snippet makes the test pass.
if (quadrant_id == 1 || quadrant_id == 2) { result_color += b_instance.colorA; } else { result_color += b_instance.colorB; }
to
first_color = b_instance.colorA; other_color = b_instance.colorB; result_color += (quadrant_id == 1 || quadrant_id == 2) ? first_color : other_color;
Where b_instance is a UBO or SSBO. The same bug does not happen with images...
@phomes running the binding model tests with env.var NV50_PROG_OPTIMIZE=1 does not result in any fail. Maybe this is a compiler issue?
added 8 commits
-
1af2a513...f91e1653 - 6 commits from branch
nouveau:nvk/main
- f1c230b0 - nvk: Enable basic geometry shaders
- 20b86425 - nvk: Add physical device limits for gs
-
1af2a513...f91e1653 - 6 commits from branch
added 1892 commits
-
20b86425...7f459fb0 - 1890 commits from branch
nouveau:nvk/main
- 85b8c6e2 - nvk: Enable basic geometry shaders
- a15dd3aa - nvk: Add physical device limits for gs
-
20b86425...7f459fb0 - 1890 commits from branch
added 12 commits
-
a15dd3aa...c02d5bc8 - 10 commits from branch
nouveau:nvk/main
- 028af5c0 - nvk: Enable basic geometry shaders
- 7c8ba95b - nvk: Add physical device limits for gs
-
a15dd3aa...c02d5bc8 - 10 commits from branch
mentioned in issue #24 (moved)
added 1575 commits
-
7c8ba95b...eaa9c2c9 - 1573 commits from branch
nouveau:nvk/main
- 14af2a5b - nvk: Enable basic geometry shaders
- 540868d9 - nvk: Add physical device limits for gs
-
7c8ba95b...eaa9c2c9 - 1573 commits from branch
added 1 commit
- 41874825 - nvk: Disable PRIMITIVE_RESTART_VERTEX_ARRAY by default
geometry.txt:
Test run totals: Passed: 186/196 (94.9%) Failed: 1/196 (0.5%) Not supported: 9/196 (4.6%) Warnings: 0/196 (0.0%) Waived: 0/196 (0.0%)
Failing test: dEQP-VK.geometry.layered.cube_array.36_36_12.secondary_cmd_buffer
Edited by George Ouzounoudisadded 35 commits
-
41874825...ab8acc42 - 32 commits from branch
nouveau:nvk/main
- 31b57aa9 - nvk: Support geometry shaders
- 99d421fe - nvk: Disable PRIMITIVE_RESTART_VERTEX_ARRAY by default
- 0ec8522c - nvk: Fix geometry shader active stream mask
Toggle commit list-
41874825...ab8acc42 - 32 commits from branch
mentioned in merge request !164 (merged)
added 2 commits
added 2595 commits
-
3ba7a129...e5dc08e7 - 2591 commits from branch
nouveau:nvk/main
- ac534767 - nvk: Support geometry shaders
- dcfa4145 - nvk: Disable PRIMITIVE_RESTART_VERTEX_ARRAY by default
- 9d32925b - nvk: Fix geometry shader active stream mask
- 1d648544 - nouveau/codegen: Handle nir op amul
Toggle commit list-
3ba7a129...e5dc08e7 - 2591 commits from branch