iris: Prefer more GPU-based uploads for compression

Where possible, start compressing depth and stencil resources on upload.
This makes a couple of benchmarks (CS:GO, GFXBench5's gl_alu2_off) start
sampling HiZ buffers in a compressed state instead of the pass-through
state.

Improves the FPS of GFXBench5's gl_alu2_off by 3.14% ±0.52% on TGL.
Testing was done with the performance CI.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2617
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10872>
This commit is contained in:
Nanley Chery 2021-05-14 07:47:31 -07:00 committed by Marge Bot
parent 88903ba64d
commit a8b9693093

View file

@ -2065,8 +2065,7 @@ iris_transfer_map(struct pipe_context *ctx,
no_gpu = true;
if (!map_would_stall &&
res->aux.usage != ISL_AUX_USAGE_CCS_E &&
res->aux.usage != ISL_AUX_USAGE_GFX12_CCS_E) {
!isl_aux_usage_has_compression(res->aux.usage)) {
no_gpu = true;
}
@ -2210,8 +2209,7 @@ iris_texture_subdata(struct pipe_context *ctx,
* stall-avoidance blits.
*/
if (surf->tiling == ISL_TILING_LINEAR ||
(isl_aux_usage_has_ccs(res->aux.usage) &&
res->aux.usage != ISL_AUX_USAGE_CCS_D) ||
isl_aux_usage_has_compression(res->aux.usage) ||
resource_is_busy(ice, res)) {
return u_default_texture_subdata(ctx, resource, level, usage, box,
data, stride, layer_stride);