Verify Sanctuary shaders on Vulkan with explicit backend tests
Build Sanctuary / build (push) Canceled after 0s
Build Sanctuary / build (push) Canceled after 0s
This commit is contained in:
@@ -25,6 +25,15 @@ if (clientRenderTests) {
|
||||
java.srcDir('src/clientGametest/java')
|
||||
}
|
||||
tasks.named('runClientGameTest') {
|
||||
def graphicsBackend = providers.gradleProperty('sanctuaryClientGraphicsBackend')
|
||||
if (graphicsBackend.isPresent()) {
|
||||
args('--graphicsBackend', graphicsBackend.get())
|
||||
systemProperty('sanctuary.test.graphicsBackend', graphicsBackend.get())
|
||||
}
|
||||
def improvedTransparency = providers.gradleProperty('sanctuaryClientImprovedTransparency')
|
||||
if (improvedTransparency.isPresent()) {
|
||||
systemProperty('sanctuary.test.improvedTransparency', improvedTransparency.get())
|
||||
}
|
||||
systemProperty('sanctuary.test.noVsync', providers.gradleProperty('sanctuaryClientNoVsync').getOrElse('false'))
|
||||
systemProperty('sanctuary.test.quick', providers.gradleProperty('sanctuaryQuickTests').getOrElse('false'))
|
||||
systemProperty('sanctuary.test.introVisualOnly', providers.gradleProperty('sanctuaryIntroVisualOnly').getOrElse('false'))
|
||||
|
||||
+14
-2
@@ -51,6 +51,14 @@ public final class PixelShadows122ClientChecks implements FabricClientGameTest {
|
||||
|
||||
@Override
|
||||
public void runTest(ClientGameTestContext c) {
|
||||
c.runOnClient(m -> {
|
||||
var info = com.mojang.blaze3d.systems.RenderSystem.getDevice().getDeviceInfo();
|
||||
String expected = System.getProperty("sanctuary.test.graphicsBackend", "");
|
||||
check(expected.isEmpty() || info.backendName().equalsIgnoreCase(expected),
|
||||
"Requested graphics backend must not silently fall back: " + expected + " / " + info.backendName());
|
||||
System.out.println("SHADER139_BACKEND " + info.backendName() + " / " + info.name()
|
||||
+ " / " + info.driverInfo() + " / zeroToOne=" + info.isZZeroToOne());
|
||||
});
|
||||
var path = FabricLoader.getInstance().getConfigDir().resolve("sanctuary-shaders.json");
|
||||
final byte[] originalPreferences;
|
||||
try {
|
||||
@@ -82,6 +90,9 @@ public final class PixelShadows122ClientChecks implements FabricClientGameTest {
|
||||
m.options.bobView().set(false);
|
||||
m.options.pauseOnLostFocus = false;
|
||||
m.options.setCameraType(CameraType.FIRST_PERSON);
|
||||
String transparency = System.getProperty("sanctuary.test.improvedTransparency");
|
||||
if (transparency != null) m.options.improvedTransparency().set(Boolean.parseBoolean(transparency));
|
||||
System.out.println("SHADER139_TRANSPARENCY " + m.options.improvedTransparency().get());
|
||||
checkPreferences();
|
||||
});
|
||||
try (var world = c.worldBuilder().adjustSettings(s -> {
|
||||
@@ -653,11 +664,11 @@ public final class PixelShadows122ClientChecks implements FabricClientGameTest {
|
||||
}
|
||||
|
||||
private record Options(int distance, int simulationDistance, int fov, boolean bob,
|
||||
boolean pause, CameraType camera, String language) {
|
||||
boolean pause, CameraType camera, String language, boolean improvedTransparency) {
|
||||
static Options capture(Minecraft m) {
|
||||
return new Options(m.options.renderDistance().get(), m.options.simulationDistance().get(), m.options.fov().get(),
|
||||
m.options.bobView().get(), m.options.pauseOnLostFocus,
|
||||
m.options.getCameraType(), m.getLanguageManager().getSelected());
|
||||
m.options.getCameraType(), m.getLanguageManager().getSelected(), m.options.improvedTransparency().get());
|
||||
}
|
||||
|
||||
void restore(Minecraft m) {
|
||||
@@ -667,6 +678,7 @@ public final class PixelShadows122ClientChecks implements FabricClientGameTest {
|
||||
m.options.bobView().set(bob);
|
||||
m.options.pauseOnLostFocus = pause;
|
||||
m.options.setCameraType(camera);
|
||||
m.options.improvedTransparency().set(improvedTransparency);
|
||||
m.getLanguageManager().setSelected(language);
|
||||
m.getLanguageManager().onResourceManagerReload(m.getResourceManager());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user