freedreno/a3xx-a5xx: restore cbuf0 direct upload.

This broke a number of dEQP tests, for reasons that are unclear -- in
looking at cffdumps, the const setup looks appropriate, just changing from
e.g:

VS_CTRL_REG1(CONSTLEN=2)
FS_CTRL_REG1(CONSTLEN=1)
LOAD_STATE6(VERT, DIRECT, DST_OFF=2, NUM_UNIT=2)
LOAD_STATE6(FRAG, DIRECT, DST_OFF=0, NUM_UNIT=2)

to:

VS_CTRL_REG1(CONSTLEN=2)
FS_CTRL_REG1(CONSTLEN=1)
LOAD_STATE6(VERT, DIRECT, DST_OFF=2, NUM_UNIT=2)
LOAD_STATE6(FRAG, INDIRECT, DST_OFF=0, NUM_UNIT=2)

Fixes: 203ac73374 ("gallium: set prefer_real_buffer_in_constbuf0 for all drivers using tc")
(cherry picked from commit 974ca32643)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39117>
This commit is contained in:
Emma Anholt 2025-12-21 21:33:58 -08:00 committed by Dylan Baker
parent 50b98e302a
commit bca2cddaf8
3 changed files with 7 additions and 91 deletions

View file

@ -254,7 +254,7 @@
"description": "freedreno/a3xx-a5xx: restore cbuf0 direct upload.",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "203ac73374a734ecd0157a21cd750fef7a589a67",
"notes": null

View file

@ -1116,78 +1116,6 @@ dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag,Fail
dEQP-GLES2.functional.polygon_offset.fixed16_render_with_units,Fail
# Regressions while the device was offline
dEQP-GLES2.functional.shaders.invariance.highp.common_subexpression_0,Fail
dEQP-GLES2.functional.shaders.invariance.highp.common_subexpression_1,Fail
dEQP-GLES2.functional.shaders.invariance.highp.common_subexpression_2,Fail
dEQP-GLES2.functional.shaders.invariance.highp.common_subexpression_3,Fail
dEQP-GLES2.functional.shaders.invariance.highp.loop_0,Fail
dEQP-GLES2.functional.shaders.invariance.highp.loop_1,Fail
dEQP-GLES2.functional.shaders.invariance.highp.loop_2,Fail
dEQP-GLES2.functional.shaders.invariance.highp.loop_3,Fail
dEQP-GLES2.functional.shaders.invariance.highp.loop_4,Fail
dEQP-GLES2.functional.shaders.invariance.highp.subexpression_precision_highp,Fail
dEQP-GLES2.functional.shaders.invariance.highp.subexpression_precision_lowp,Fail
dEQP-GLES2.functional.shaders.invariance.highp.subexpression_precision_mediump,Fail
dEQP-GLES2.functional.shaders.invariance.lowp.common_subexpression_0,Fail
dEQP-GLES2.functional.shaders.invariance.lowp.common_subexpression_1,Fail
dEQP-GLES2.functional.shaders.invariance.lowp.common_subexpression_2,Fail
dEQP-GLES2.functional.shaders.invariance.lowp.common_subexpression_3,Fail
dEQP-GLES2.functional.shaders.invariance.lowp.loop_0,Fail
dEQP-GLES2.functional.shaders.invariance.lowp.loop_1,Fail
dEQP-GLES2.functional.shaders.invariance.lowp.loop_2,Fail
dEQP-GLES2.functional.shaders.invariance.lowp.loop_3,Fail
dEQP-GLES2.functional.shaders.invariance.lowp.loop_4,Fail
dEQP-GLES2.functional.shaders.invariance.lowp.subexpression_precision_highp,Fail
dEQP-GLES2.functional.shaders.invariance.lowp.subexpression_precision_lowp,Fail
dEQP-GLES2.functional.shaders.invariance.lowp.subexpression_precision_mediump,Fail
dEQP-GLES2.functional.shaders.invariance.mediump.common_subexpression_0,Fail
dEQP-GLES2.functional.shaders.invariance.mediump.common_subexpression_1,Fail
dEQP-GLES2.functional.shaders.invariance.mediump.common_subexpression_2,Fail
dEQP-GLES2.functional.shaders.invariance.mediump.common_subexpression_3,Fail
dEQP-GLES2.functional.shaders.invariance.mediump.loop_0,Fail
dEQP-GLES2.functional.shaders.invariance.mediump.loop_1,Fail
dEQP-GLES2.functional.shaders.invariance.mediump.loop_2,Fail
dEQP-GLES2.functional.shaders.invariance.mediump.loop_3,Fail
dEQP-GLES2.functional.shaders.invariance.mediump.loop_4,Fail
dEQP-GLES2.functional.shaders.invariance.mediump.subexpression_precision_highp,Fail
dEQP-GLES2.functional.shaders.invariance.mediump.subexpression_precision_lowp,Fail
dEQP-GLES2.functional.shaders.invariance.mediump.subexpression_precision_mediump,Fail
dEQP-GLES3.functional.shaders.invariance.highp.common_subexpression_0,Fail
dEQP-GLES3.functional.shaders.invariance.highp.common_subexpression_1,Fail
dEQP-GLES3.functional.shaders.invariance.highp.common_subexpression_2,Fail
dEQP-GLES3.functional.shaders.invariance.highp.common_subexpression_3,Fail
dEQP-GLES3.functional.shaders.invariance.highp.loop_0,Fail
dEQP-GLES3.functional.shaders.invariance.highp.loop_1,Fail
dEQP-GLES3.functional.shaders.invariance.highp.loop_2,Fail
dEQP-GLES3.functional.shaders.invariance.highp.loop_3,Fail
dEQP-GLES3.functional.shaders.invariance.highp.loop_4,Fail
dEQP-GLES3.functional.shaders.invariance.highp.subexpression_precision_highp,Fail
dEQP-GLES3.functional.shaders.invariance.highp.subexpression_precision_lowp,Fail
dEQP-GLES3.functional.shaders.invariance.highp.subexpression_precision_mediump,Fail
dEQP-GLES3.functional.shaders.invariance.lowp.common_subexpression_0,Fail
dEQP-GLES3.functional.shaders.invariance.lowp.common_subexpression_1,Fail
dEQP-GLES3.functional.shaders.invariance.lowp.common_subexpression_2,Fail
dEQP-GLES3.functional.shaders.invariance.lowp.common_subexpression_3,Fail
dEQP-GLES3.functional.shaders.invariance.lowp.loop_0,Fail
dEQP-GLES3.functional.shaders.invariance.lowp.loop_1,Fail
dEQP-GLES3.functional.shaders.invariance.lowp.loop_2,Fail
dEQP-GLES3.functional.shaders.invariance.lowp.loop_3,Fail
dEQP-GLES3.functional.shaders.invariance.lowp.loop_4,Fail
dEQP-GLES3.functional.shaders.invariance.lowp.subexpression_precision_highp,Fail
dEQP-GLES3.functional.shaders.invariance.lowp.subexpression_precision_lowp,Fail
dEQP-GLES3.functional.shaders.invariance.lowp.subexpression_precision_mediump,Fail
dEQP-GLES3.functional.shaders.invariance.mediump.common_subexpression_0,Fail
dEQP-GLES3.functional.shaders.invariance.mediump.common_subexpression_1,Fail
dEQP-GLES3.functional.shaders.invariance.mediump.common_subexpression_2,Fail
dEQP-GLES3.functional.shaders.invariance.mediump.common_subexpression_3,Fail
dEQP-GLES3.functional.shaders.invariance.mediump.loop_0,Fail
dEQP-GLES3.functional.shaders.invariance.mediump.loop_1,Fail
dEQP-GLES3.functional.shaders.invariance.mediump.loop_2,Fail
dEQP-GLES3.functional.shaders.invariance.mediump.loop_3,Fail
dEQP-GLES3.functional.shaders.invariance.mediump.loop_4,Fail
dEQP-GLES3.functional.shaders.invariance.mediump.subexpression_precision_highp,Fail
dEQP-GLES3.functional.shaders.invariance.mediump.subexpression_precision_lowp,Fail
dEQP-GLES3.functional.shaders.invariance.mediump.subexpression_precision_mediump,Fail
dEQP-GLES3.functional.state_query.texture.texture_2d_array_texture_immutable_levels_gettexparameterf,Fail
dEQP-GLES3.functional.state_query.texture.texture_2d_array_texture_immutable_levels_gettexparameteri,Fail
dEQP-GLES3.functional.state_query.texture.texture_2d_texture_immutable_levels_gettexparameterf,Fail
@ -1198,8 +1126,6 @@ dEQP-GLES3.functional.state_query.texture.texture_cube_map_texture_immutable_lev
dEQP-GLES3.functional.state_query.texture.texture_cube_map_texture_immutable_levels_gettexparameteri,Fail
# Regressions while the device was offline
glx@glx-tfp,Fail
shaders@glsl-derivs,Fail
spec@!opengl es 3.0@texture-immutable-levels,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_argb8888,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_ayuv,Fail
@ -1210,18 +1136,3 @@ spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_xyuv,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y410,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yuv420,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yvu420,Fail
spec@ext_texture_srgb@tex-srgb,Fail
spec@ext_transform_feedback@tessellation lines flat_first,Fail
spec@ext_transform_feedback@tessellation lines flat_last,Fail
spec@ext_transform_feedback@tessellation lines monochrome,Fail
spec@ext_transform_feedback@tessellation lines smooth,Fail
spec@ext_transform_feedback@tessellation points flat_first,Fail
spec@ext_transform_feedback@tessellation points flat_last,Fail
spec@ext_transform_feedback@tessellation points monochrome,Fail
spec@ext_transform_feedback@tessellation points smooth,Fail
spec@ext_transform_feedback@tessellation triangles flat_first,Fail
spec@ext_transform_feedback@tessellation triangles flat_last,Fail
spec@ext_transform_feedback@tessellation triangles monochrome,Fail
spec@ext_transform_feedback@tessellation triangles smooth,Fail
spec@ext_transform_feedback@tessellation triangles wireframe,Fail
spec@glsl-1.10@execution@color-interp-smooth-shademodel-flat,Fail

View file

@ -365,7 +365,12 @@ fd_init_screen_caps(struct fd_screen *screen)
/* this is probably not totally correct.. but it's a start: */
/* Supported features (boolean caps). */
caps->prefer_real_buffer_in_constbuf0 = true;
if (is_a6xx(screen)) {
/* Direct upload is slightly faster without TC, and indirect causes
* regression on at least a3xx.
*/
caps->prefer_real_buffer_in_constbuf0 = true;
}
caps->npot_textures = true;
caps->mixed_framebuffer_sizes = true;
caps->anisotropic_filter = true;