-
-
Notifications
You must be signed in to change notification settings - Fork 61
refactor(engine)!: GPU pass fusion — record-then-plan pipeline with fused shader passes #2221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 122 commits
95766e7
35e7f28
ad27305
f9c16ee
78b2772
5c8a7e6
acdf35b
5625a65
699332c
a7ade16
88d311c
8be2d76
e296e21
6a09384
b37927c
15cd411
20a9dd0
999ad72
20aa0ce
ebce996
e4f0f99
d8be641
e3927dd
991f49e
1bc6920
58d8e0d
cfaaad6
3dde97c
ee50706
f1bb791
bab9370
1db58bc
ebf1bc5
b17fab1
7327911
d6774c6
9352a5c
5d918b9
283cdcc
2974a60
e90a4d7
a9a999a
5d2b603
6dfd0f2
674c82a
66cd2dc
554bd62
680ee2c
7e2d928
715d3a5
72014b7
f082729
48318a6
904e693
70479b1
3d65b63
4be97a8
a619d80
4673e2a
3c33795
d803801
47bd883
1ecec31
816ee51
a79f556
5b56d2d
a9bc1af
8ae8631
d53b155
87c7464
9918ab9
120d6bd
a52b0a5
96154ed
449e712
c8314e4
6120900
cef2f8e
325a7f6
832090d
ef20ce1
1498b9f
2dbe81d
6857dfa
518b3e2
8c79620
73160e0
1e79834
9d2fc5c
2af9acf
7de1520
fa533c3
1fa4836
9a49126
9316699
bdf088a
253bc4f
09a76f3
def8dcb
8988a5d
7855b18
db38ca8
66dc048
294ce95
7e4d3b0
17f301f
c9ab893
79d02f0
e20b9d1
f6285fc
1ae2195
6f439b1
45244fe
114e26f
99ad6e1
2c62494
c67dcf5
104529d
5a12139
d58ef7c
5f5fd86
749c944
bd69026
fad57f2
f12d459
42e3e0e
155cbc3
ea614fe
2fa6ed4
8d02d5e
20dfe84
5ade9db
41206bc
788d2be
d685776
e287003
5932544
b4e2366
51ed993
955ed3c
99aa39a
9e059b9
ef69aaa
9226be0
b73a8f8
85667b9
a88e5cf
0a52e7b
fe3788f
bff7a15
0c1c08c
cefa82e
1d9a83f
de76e97
970b078
7c633fc
ac25400
155a737
2550b13
81fd990
9658336
47f41ef
60b51d1
f5a1748
bfd2ae1
e8328ce
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,4 @@ | ||
| name: .NET | ||
| name: .NET | ||
|
|
||
| on: | ||
| push: | ||
|
|
@@ -52,6 +52,34 @@ jobs: | |
| # SwiftShader Vulkan ICD fails to load; see GpuGoldenSuiteCanaryTests. | ||
| BEUTL_REQUIRE_GPU: "1" | ||
|
|
||
| # A validation error names API misuse the driver is not required to diagnose - a render pass instance | ||
| # begun inside another, a handle submitted to a device that never created it - so a suite that runs | ||
| # green while reporting one has already entered undefined behaviour. The layer stays off for the run | ||
| # above because it costs time on all 7,000 tests and is only meaningful for the GPU-backed ones; this | ||
| # step turns it on for exactly those. VulkanTestEnvironment/GpuTestEnvironment compare the validation | ||
| # log around every render-thread invocation, so an error fails the test that reported it, and | ||
| # VulkanValidationGateTests fails if the layer was requested but did not load - a gate that cannot | ||
| # observe anything must not pass quietly. | ||
| - name: Install Vulkan validation layers | ||
| run: | | ||
| sudo apt-get update | ||
| sudo apt-get install -y --no-install-recommends vulkan-validationlayers | ||
|
Comment on lines
+63
to
+66
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This adds package-installation and Vulkan-validation steps to the existing AGENTS.md reference: AGENTS.md:L52-L52 Useful? React with 👍 / 👎. |
||
|
|
||
| # KnownVulkanSkiaLayoutInterop is excluded: Skia and the backend track the same image's layout | ||
| # independently and drift apart, which validation reports as InvalidImageLayout. Closing it needs a | ||
| # way to read back or command the layout Skia holds, which SkiaSharp 3.119 does not expose. Those | ||
| # tests still run in the step above; see TestCategories.KnownVulkanSkiaLayoutInterop and issue #2263, | ||
| # on whose close both TestCategory!= clauses below come out. | ||
| - name: GPU tests under Vulkan validation | ||
| run: | | ||
| dotnet test tests/Beutl.UnitTests/Beutl.UnitTests.csproj --no-build -f net10.0 \ | ||
| --filter "(TestCategory=GpuPassFusionGpu|FullyQualifiedName~VulkanValidationGateTests|FullyQualifiedName~GpuGoldenSuiteCanaryTests)&TestCategory!=KnownVulkanSkiaLayoutInterop" | ||
| dotnet test tests/Beutl.Graphics3DTests/Beutl.Graphics3DTests.csproj --no-build -f net10.0 \ | ||
| --filter "TestCategory!=KnownVulkanSkiaLayoutInterop" | ||
| env: | ||
| BEUTL_REQUIRE_GPU: "1" | ||
| BEUTL_VULKAN_VALIDATION: "1" | ||
|
|
||
| - name: Merge coverage reports | ||
| # Every test project now collects coverage (coverlet.collector is shared via | ||
| # tests/Directory.Build.props), so dotnet test emits one cobertura file per test | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.