zink: enable renderpass optimizations by default for selected drivers

CI has been running this for months on turnip, so let's give it some
broader testing

also add a ZINK_DEBUG=norp for testing

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21296>
This commit is contained in:
Mike Blumenkrantz
2023-02-13 17:15:57 -05:00
committed by Marge Bot
parent 4fbcd046ce
commit 0d445cfb7e
5 changed files with 15 additions and 8 deletions

View File

@@ -291,6 +291,10 @@ variable:
Do not reorder or optimize GL command streams
``gpl``
Force using Graphics Pipeline Library for all shaders
``rp``
Enable renderpass optimizations (for tiling GPUs)
``norp``
Disable renderpass optimizations (for tiling GPUs)
Vulkan Validation Layers
^^^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -122,7 +122,6 @@ zink-freedreno-a630-traces:
- .zink-trace-test
variables:
PIGLIT_REPLAY_DEVICE_NAME: "zink-a630"
ZINK_DEBUG: rp
############### Combined testing (GL, GLES, Piglit) on RADV
.radv-zink-test-valve:

View File

@@ -4,6 +4,3 @@ dEQP-GLES3.functional.shaders.matrix.inverse.dynamic.mediump_mat4_float_vertex,F
# Some incorrect colors and missing lines. Passes on its own. Need to extract and minify the failing caselist.
dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.4,Fail
# Some of the quads are missing?
565-nozs-dEQP-GLES3.functional.color_clear.complex_rgb,Fail

View File

@@ -2513,9 +2513,12 @@ init_driver_workarounds(struct zink_screen *screen)
screen->info.rb_image_feats.robustImageAccess;
/* once more testing has been done, use the #if 0 block */
if (zink_debug & ZINK_DEBUG_RP)
screen->driver_workarounds.track_renderpasses = true;
#if 0
unsigned illegal = ZINK_DEBUG_RP | ZINK_DEBUG_NORP;
if ((zink_debug & illegal) == illegal) {
mesa_loge("Cannot specify ZINK_DEBUG=rp and ZINK_DEBUG=norp");
abort();
}
/* these drivers benefit from renderpass optimization */
switch (screen->info.driver_props.driverID) {
//* llvmpipe is broken: #7489
@@ -2533,7 +2536,10 @@ init_driver_workarounds(struct zink_screen *screen)
default:
break;
}
#endif
if (zink_debug & ZINK_DEBUG_RP)
screen->driver_workarounds.track_renderpasses = true;
else if (zink_debug & ZINK_DEBUG_NORP)
screen->driver_workarounds.track_renderpasses = false;
}
static struct disk_cache *

View File

@@ -216,6 +216,7 @@ enum zink_debug {
ZINK_DEBUG_GPL = (1<<7),
ZINK_DEBUG_SHADERDB = (1<<8),
ZINK_DEBUG_RP = (1<<9),
ZINK_DEBUG_NORP = (1<<10),
};