diff --git a/.pick_status.json b/.pick_status.json index 573fc9ec163..0da5de9e38e 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -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 diff --git a/src/freedreno/ci/freedreno-a306-fails.txt b/src/freedreno/ci/freedreno-a306-fails.txt index 7526bcac988..3318965f3c8 100644 --- a/src/freedreno/ci/freedreno-a306-fails.txt +++ b/src/freedreno/ci/freedreno-a306-fails.txt @@ -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 diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c index b52e000d418..3d405aa184a 100644 --- a/src/gallium/drivers/freedreno/freedreno_screen.c +++ b/src/gallium/drivers/freedreno/freedreno_screen.c @@ -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;