freedreno/a6xx: Don't blit with R2D_RAW

Map all formats to a valid ifmt.  FMT6_10_10_10_2_UNORM_DEST still
doesn't work on the blitter so keep that one on the u_blitter path.

Fixes
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.*
with FD_MESA_DEBUG=nogmem.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5717>
This commit is contained in:
Kristian H. Kristensen
2020-07-01 14:50:52 -07:00
committed by Marge Bot
parent 53e36cf062
commit 094b68fa72
4 changed files with 9 additions and 31 deletions

View File

@@ -67,16 +67,6 @@ dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_bl
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_blend_eq
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_separate_blend_eq
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_separate_blend_eq_buffer_blend_eq
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.11
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.15
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.17
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.18
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.2
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.3
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.6
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.7
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.19
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.3
dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_depth_fbo
dEQP-GLES31.functional.ssbo.layout.3_level_array.std140.column_major_mat4x2
dEQP-GLES31.functional.ssbo.layout.3_level_unsized_array.std430.mat3

View File

@@ -72,7 +72,7 @@ traces:
expectations:
# Bad rendering -- some sort of gap in the upper right of the image.
- device: freedreno-a630
checksum: 1c7411cebed6ba0015aaef102539fc5a
checksum: c6d7e9712631762b6acdd53bc1dd2aa3
- path: humus/RaytracedShadows.trace
expectations:
- device: freedreno-a630

View File

@@ -80,7 +80,7 @@ ok_format(enum pipe_format pfmt)
if (fmt == FMT6_NONE)
return false;
if (fd6_ifmt(fmt) == 0)
if (fmt == FMT6_10_10_10_2_UNORM_DEST)
return false;
return true;
@@ -409,15 +409,6 @@ emit_blit_or_clear_texture(struct fd_context *ctx, struct fd_ringbuffer *ring,
dfmt = FMT6_Z24_UNORM_S8_UINT_AS_R8G8B8A8;
break;
}
case PIPE_FORMAT_B5G6R5_UNORM:
case PIPE_FORMAT_B5G5R5A1_UNORM:
case PIPE_FORMAT_B5G5R5X1_UNORM:
case PIPE_FORMAT_B4G4R4A4_UNORM:
color->ui[0] = float_to_ubyte(color->f[0]);
color->ui[1] = float_to_ubyte(color->f[1]);
color->ui[2] = float_to_ubyte(color->f[2]);
color->ui[3] = float_to_ubyte(color->f[3]);
break;
default:
break;
}
@@ -439,12 +430,10 @@ emit_blit_or_clear_texture(struct fd_context *ctx, struct fd_ringbuffer *ring,
OUT_RING(ring, _mesa_float_to_half(color->f[3]));
sfmt = FMT6_16_16_16_16_FLOAT;
break;
case R2D_FLOAT32:
case R2D_INT32:
case R2D_INT16:
case R2D_INT8:
case R2D_RAW:
default:
OUT_RING(ring, color->ui[0]);
OUT_RING(ring, color->ui[1]);

View File

@@ -61,6 +61,9 @@ fd6_ifmt(enum a6xx_format fmt)
case FMT6_8_8_8_8_UNORM:
case FMT6_8_8_8_X8_UNORM:
case FMT6_8_8_8_8_SNORM:
case FMT6_4_4_4_4_UNORM:
case FMT6_5_5_5_1_UNORM:
case FMT6_5_6_5_UNORM:
return R2D_UNORM8;
case FMT6_32_UINT:
@@ -77,6 +80,7 @@ fd6_ifmt(enum a6xx_format fmt)
case FMT6_16_16_SINT:
case FMT6_16_16_16_16_UINT:
case FMT6_16_16_16_16_SINT:
case FMT6_10_10_10_2_UINT:
return R2D_INT16;
case FMT6_8_UINT:
@@ -85,6 +89,8 @@ fd6_ifmt(enum a6xx_format fmt)
case FMT6_8_8_SINT:
case FMT6_8_8_8_8_UINT:
case FMT6_8_8_8_8_SINT:
case FMT6_Z24_UNORM_S8_UINT:
case FMT6_Z24_UNORM_S8_UINT_AS_R8G8B8A8:
return R2D_INT8;
case FMT6_16_UNORM:
@@ -102,16 +108,9 @@ fd6_ifmt(enum a6xx_format fmt)
case FMT6_16_16_FLOAT:
case FMT6_16_16_16_16_FLOAT:
case FMT6_11_11_10_FLOAT:
case FMT6_10_10_10_2_UNORM_DEST:
return R2D_FLOAT16;
case FMT6_10_10_10_2_UNORM_DEST:
case FMT6_4_4_4_4_UNORM:
case FMT6_5_5_5_1_UNORM:
case FMT6_5_6_5_UNORM:
case FMT6_10_10_10_2_UINT:
case FMT6_Z24_UNORM_S8_UINT:
case FMT6_Z24_UNORM_S8_UINT_AS_R8G8B8A8:
return R2D_RAW;
default:
unreachable("bad format");
return 0;