gallium: rename ZS stencil type to UINT (v2)
these are never USCALED, always UINT in reality. taken from some work by Christoph Bumiller v2: fixup formatting of table + tabs Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
6b3e75de7c
commit
866f9b18c6
|
@ -248,12 +248,12 @@ pp_init_fbos(struct pp_queue_t *ppq, const unsigned int w,
|
||||||
if (!ppq->depth)
|
if (!ppq->depth)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
tmp_res.format = p->surf.format = PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
tmp_res.format = p->surf.format = PIPE_FORMAT_S8_UINT_Z24_UNORM;
|
||||||
|
|
||||||
if (!p->screen->is_format_supported(p->screen, tmp_res.format,
|
if (!p->screen->is_format_supported(p->screen, tmp_res.format,
|
||||||
tmp_res.target, 1, tmp_res.bind)) {
|
tmp_res.target, 1, tmp_res.bind)) {
|
||||||
|
|
||||||
tmp_res.format = p->surf.format = PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
tmp_res.format = p->surf.format = PIPE_FORMAT_Z24_UNORM_S8_UINT;
|
||||||
|
|
||||||
if (!p->screen->is_format_supported(p->screen, tmp_res.format,
|
if (!p->screen->is_format_supported(p->screen, tmp_res.format,
|
||||||
tmp_res.target, 1, tmp_res.bind))
|
tmp_res.target, 1, tmp_res.bind))
|
||||||
|
|
|
@ -561,8 +561,8 @@ util_format_translate(enum pipe_format dst_format,
|
||||||
tmp_z = MALLOC(width * sizeof *tmp_z);
|
tmp_z = MALLOC(width * sizeof *tmp_z);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (src_format_desc->unpack_s_8uscaled &&
|
if (src_format_desc->unpack_s_8uint &&
|
||||||
dst_format_desc->pack_s_8uscaled) {
|
dst_format_desc->pack_s_8uint) {
|
||||||
tmp_s = MALLOC(width * sizeof *tmp_s);
|
tmp_s = MALLOC(width * sizeof *tmp_s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -573,8 +573,8 @@ util_format_translate(enum pipe_format dst_format,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tmp_s) {
|
if (tmp_s) {
|
||||||
src_format_desc->unpack_s_8uscaled(tmp_s, 0, src_row, src_stride, width, 1);
|
src_format_desc->unpack_s_8uint(tmp_s, 0, src_row, src_stride, width, 1);
|
||||||
dst_format_desc->pack_s_8uscaled(dst_row, dst_stride, tmp_s, 0, width, 1);
|
dst_format_desc->pack_s_8uint(dst_row, dst_stride, tmp_s, 0, width, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
dst_row += dst_step;
|
dst_row += dst_step;
|
||||||
|
|
|
@ -124,18 +124,18 @@ PIPE_FORMAT_R10SG10SB10SA2U_NORM , plain, 1, 1, sn10, sn10, sn10, un2 , xyzw, r
|
||||||
PIPE_FORMAT_R5SG5SB6U_NORM , plain, 1, 1, sn5 , sn5 , un6 , , xyz1, rgb
|
PIPE_FORMAT_R5SG5SB6U_NORM , plain, 1, 1, sn5 , sn5 , un6 , , xyz1, rgb
|
||||||
|
|
||||||
# Depth-stencil formats
|
# Depth-stencil formats
|
||||||
PIPE_FORMAT_S8_USCALED , plain, 1, 1, u8 , , , , _x__, zs
|
PIPE_FORMAT_S8_UINT , plain, 1, 1, up8 , , , , _x__, zs
|
||||||
PIPE_FORMAT_Z16_UNORM , plain, 1, 1, un16, , , , x___, zs
|
PIPE_FORMAT_Z16_UNORM , plain, 1, 1, un16, , , , x___, zs
|
||||||
PIPE_FORMAT_Z32_UNORM , plain, 1, 1, un32, , , , x___, zs
|
PIPE_FORMAT_Z32_UNORM , plain, 1, 1, un32, , , , x___, zs
|
||||||
PIPE_FORMAT_Z32_FLOAT , plain, 1, 1, f32 , , , , x___, zs
|
PIPE_FORMAT_Z32_FLOAT , plain, 1, 1, f32 , , , , x___, zs
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED , plain, 1, 1, un24, u8 , , , xy__, zs
|
PIPE_FORMAT_Z24_UNORM_S8_UINT , plain, 1, 1, un24, up8 , , , xy__, zs
|
||||||
PIPE_FORMAT_S8_USCALED_Z24_UNORM , plain, 1, 1, u8 , un24, , , yx__, zs
|
PIPE_FORMAT_S8_UINT_Z24_UNORM , plain, 1, 1, up8 , un24, , , yx__, zs
|
||||||
PIPE_FORMAT_X24S8_USCALED , plain, 1, 1, x24, u8 , , , _y__, zs
|
PIPE_FORMAT_X24S8_UINT , plain, 1, 1, x24 , up8 , , , _y__, zs
|
||||||
PIPE_FORMAT_S8X24_USCALED , plain, 1, 1, u8 , x24 , , , _x__, zs
|
PIPE_FORMAT_S8X24_UINT , plain, 1, 1, up8 , x24 , , , _x__, zs
|
||||||
PIPE_FORMAT_Z24X8_UNORM , plain, 1, 1, un24, x8 , , , x___, zs
|
PIPE_FORMAT_Z24X8_UNORM , plain, 1, 1, un24, x8 , , , x___, zs
|
||||||
PIPE_FORMAT_X8Z24_UNORM , plain, 1, 1, x8 , un24, , , y___, zs
|
PIPE_FORMAT_X8Z24_UNORM , plain, 1, 1, x8 , un24, , , y___, zs
|
||||||
PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED , plain, 1, 1, f32, u8 , x24 , , xy__, zs
|
PIPE_FORMAT_Z32_FLOAT_S8X24_UINT , plain, 1, 1, f32 , up8 , x24, , xy__, zs
|
||||||
PIPE_FORMAT_X32_S8X24_USCALED , plain, 1, 1, x32, u8 , x24 , , _y__, zs
|
PIPE_FORMAT_X32_S8X24_UINT , plain, 1, 1, x32 , up8 , x24, , _y__, zs
|
||||||
|
|
||||||
# YUV formats
|
# YUV formats
|
||||||
# http://www.fourcc.org/yuv.php#UYVY
|
# http://www.fourcc.org/yuv.php#UYVY
|
||||||
|
@ -339,3 +339,4 @@ PIPE_FORMAT_A32_SINT , plain, 1, 1, sp32, , , , 000x, rgb
|
||||||
PIPE_FORMAT_I32_SINT , plain, 1, 1, sp32, , , , xxxx, rgb
|
PIPE_FORMAT_I32_SINT , plain, 1, 1, sp32, , , , xxxx, rgb
|
||||||
PIPE_FORMAT_L32_SINT , plain, 1, 1, sp32, , , , xxx1, rgb
|
PIPE_FORMAT_L32_SINT , plain, 1, 1, sp32, , , , xxx1, rgb
|
||||||
PIPE_FORMAT_L32A32_SINT , plain, 1, 1, sp32, sp32, , , xxxy, rgb
|
PIPE_FORMAT_L32A32_SINT , plain, 1, 1, sp32, sp32, , , xxxy, rgb
|
||||||
|
|
||||||
|
|
Can't render this file because it contains an unexpected character in line 8 and column 3.
|
|
@ -301,24 +301,24 @@ struct util_format_description
|
||||||
unsigned width, unsigned height);
|
unsigned width, unsigned height);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unpack pixels to S8_USCALED.
|
* Unpack pixels to S8_UINT.
|
||||||
* Note: strides are in bytes.
|
* Note: strides are in bytes.
|
||||||
*
|
*
|
||||||
* Only defined for stencil formats.
|
* Only defined for stencil formats.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
(*unpack_s_8uscaled)(uint8_t *dst, unsigned dst_stride,
|
(*unpack_s_8uint)(uint8_t *dst, unsigned dst_stride,
|
||||||
const uint8_t *src, unsigned src_stride,
|
const uint8_t *src, unsigned src_stride,
|
||||||
unsigned width, unsigned height);
|
unsigned width, unsigned height);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pack pixels from S8_USCALED.
|
* Pack pixels from S8_UINT.
|
||||||
* Note: strides are in bytes.
|
* Note: strides are in bytes.
|
||||||
*
|
*
|
||||||
* Only defined for stencil formats.
|
* Only defined for stencil formats.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
(*pack_s_8uscaled)(uint8_t *dst, unsigned dst_stride,
|
(*pack_s_8uint)(uint8_t *dst, unsigned dst_stride,
|
||||||
const uint8_t *src, unsigned src_stride,
|
const uint8_t *src, unsigned src_stride,
|
||||||
unsigned width, unsigned height);
|
unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
|
@ -159,17 +159,17 @@ def write_format_table(formats):
|
||||||
print " NULL, /* unpack_z_float */"
|
print " NULL, /* unpack_z_float */"
|
||||||
print " NULL, /* pack_z_float */"
|
print " NULL, /* pack_z_float */"
|
||||||
if format.colorspace == ZS and format.swizzles[1] != SWIZZLE_NONE:
|
if format.colorspace == ZS and format.swizzles[1] != SWIZZLE_NONE:
|
||||||
print " &util_format_%s_unpack_s_8uscaled," % format.short_name()
|
print " &util_format_%s_unpack_s_8uint," % format.short_name()
|
||||||
print " &util_format_%s_pack_s_8uscaled," % format.short_name()
|
print " &util_format_%s_pack_s_8uint," % format.short_name()
|
||||||
else:
|
else:
|
||||||
print " NULL, /* unpack_s_8uscaled */"
|
print " NULL, /* unpack_s_8uint */"
|
||||||
print " NULL, /* pack_s_8uscaled */"
|
print " NULL, /* pack_s_8uint */"
|
||||||
if format.channels[0].pure == True and format.channels[0].type == UNSIGNED:
|
if format.colorspace != ZS and format.channels[0].pure == True and format.channels[0].type == UNSIGNED:
|
||||||
print " &util_format_%s_unpack_unsigned, /* unpack_rgba_uint */" % format.short_name()
|
print " &util_format_%s_unpack_unsigned, /* unpack_rgba_uint */" % format.short_name()
|
||||||
print " &util_format_%s_pack_unsigned, /* pack_rgba_uint */" % format.short_name()
|
print " &util_format_%s_pack_unsigned, /* pack_rgba_uint */" % format.short_name()
|
||||||
print " &util_format_%s_unpack_signed, /* unpack_rgba_sint */" % format.short_name()
|
print " &util_format_%s_unpack_signed, /* unpack_rgba_sint */" % format.short_name()
|
||||||
print " &util_format_%s_pack_signed /* pack_rgba_sint */" % format.short_name()
|
print " &util_format_%s_pack_signed /* pack_rgba_sint */" % format.short_name()
|
||||||
elif format.channels[0].pure == True and format.channels[0].type == SIGNED:
|
elif format.colorspace != ZS and format.channels[0].pure == True and format.channels[0].type == SIGNED:
|
||||||
print " &util_format_%s_unpack_unsigned, /* unpack_rgba_uint */" % format.short_name()
|
print " &util_format_%s_unpack_unsigned, /* unpack_rgba_uint */" % format.short_name()
|
||||||
print " &util_format_%s_pack_unsigned, /* pack_rgba_uint */" % format.short_name()
|
print " &util_format_%s_pack_unsigned, /* pack_rgba_uint */" % format.short_name()
|
||||||
print " &util_format_%s_unpack_signed, /* unpack_rgba_sint */" % format.short_name()
|
print " &util_format_%s_unpack_signed, /* unpack_rgba_sint */" % format.short_name()
|
||||||
|
|
|
@ -337,8 +337,8 @@ util_format_test_cases[] =
|
||||||
* Depth-stencil formats
|
* Depth-stencil formats
|
||||||
*/
|
*/
|
||||||
|
|
||||||
{PIPE_FORMAT_S8_USCALED, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_S8_UINT, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_S8_USCALED, PACKED_1x8(0xff), PACKED_1x8(0xff), UNPACKED_1x1(0.0, 255.0, 0.0, 0.0)},
|
{PIPE_FORMAT_S8_UINT, PACKED_1x8(0xff), PACKED_1x8(0xff), UNPACKED_1x1(0.0, 255.0, 0.0, 0.0)},
|
||||||
|
|
||||||
{PIPE_FORMAT_Z16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_Z16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
|
||||||
|
@ -349,15 +349,15 @@ util_format_test_cases[] =
|
||||||
{PIPE_FORMAT_Z32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_Z32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0x3f800000), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0x3f800000), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
|
||||||
|
|
||||||
{PIPE_FORMAT_Z24_UNORM_S8_USCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z24_UNORM_S8_UINT, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_Z24_UNORM_S8_USCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ffffff), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z24_UNORM_S8_UINT, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ffffff), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_Z24_UNORM_S8_USCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), UNPACKED_1x1(0.0, 255.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z24_UNORM_S8_UINT, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), UNPACKED_1x1(0.0, 255.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_Z24_UNORM_S8_USCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 255.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z24_UNORM_S8_UINT, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 255.0, 0.0, 0.0)},
|
||||||
|
|
||||||
{PIPE_FORMAT_S8_USCALED_Z24_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_S8_UINT_Z24_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_S8_USCALED_Z24_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffff00), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_S8_UINT_Z24_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffff00), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_S8_USCALED_Z24_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), UNPACKED_1x1(0.0, 255.0, 0.0, 0.0)},
|
{PIPE_FORMAT_S8_UINT_Z24_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), UNPACKED_1x1(0.0, 255.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_S8_USCALED_Z24_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 255.0, 0.0, 0.0)},
|
{PIPE_FORMAT_S8_UINT_Z24_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 255.0, 0.0, 0.0)},
|
||||||
|
|
||||||
{PIPE_FORMAT_Z24X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z24X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_Z24X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00ffffff), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z24X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00ffffff), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
|
||||||
|
@ -365,9 +365,9 @@ util_format_test_cases[] =
|
||||||
{PIPE_FORMAT_X8Z24_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_X8Z24_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_X8Z24_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xffffff00), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_X8Z24_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xffffff00), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
|
||||||
|
|
||||||
{PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED, PACKED_2x32(0xffffffff, 0x000000ff), PACKED_2x32(0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z32_FLOAT_S8X24_UINT, PACKED_2x32(0xffffffff, 0x000000ff), PACKED_2x32(0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED, PACKED_2x32(0xffffffff, 0x000000ff), PACKED_2x32(0x3f800000, 0x00000000), UNPACKED_1x1( 1.0, 0.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z32_FLOAT_S8X24_UINT, PACKED_2x32(0xffffffff, 0x000000ff), PACKED_2x32(0x3f800000, 0x00000000), UNPACKED_1x1( 1.0, 0.0, 0.0, 0.0)},
|
||||||
{PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED, PACKED_2x32(0xffffffff, 0x000000ff), PACKED_2x32(0x00000000, 0x000000ff), UNPACKED_1x1( 0.0, 255.0, 0.0, 0.0)},
|
{PIPE_FORMAT_Z32_FLOAT_S8X24_UINT, PACKED_2x32(0xffffffff, 0x000000ff), PACKED_2x32(0x00000000, 0x000000ff), UNPACKED_1x1( 0.0, 255.0, 0.0, 0.0)},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* YUV formats
|
* YUV formats
|
||||||
|
|
|
@ -112,7 +112,7 @@ z32_unorm_to_z32_float(uint32_t z)
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride,
|
util_format_s8_uint_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -125,7 +125,7 @@ util_format_s8_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride,
|
util_format_s8_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -353,7 +353,7 @@ util_format_z32_float_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z24_unorm_s8_uscaled_unpack_z_float(float *dst_row, unsigned dst_stride,
|
util_format_z24_unorm_s8_uint_unpack_z_float(float *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -374,7 +374,7 @@ util_format_z24_unorm_s8_uscaled_unpack_z_float(float *dst_row, unsigned dst_str
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z24_unorm_s8_uscaled_pack_z_float(uint8_t *dst_row, unsigned dst_stride,
|
util_format_z24_unorm_s8_uint_pack_z_float(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const float *src_row, unsigned src_stride,
|
const float *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -400,7 +400,7 @@ util_format_z24_unorm_s8_uscaled_pack_z_float(uint8_t *dst_row, unsigned dst_str
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z24_unorm_s8_uscaled_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride,
|
util_format_z24_unorm_s8_uint_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -421,7 +421,7 @@ util_format_z24_unorm_s8_uscaled_unpack_z_32unorm(uint32_t *dst_row, unsigned ds
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z24_unorm_s8_uscaled_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride,
|
util_format_z24_unorm_s8_uint_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint32_t *src_row, unsigned src_stride,
|
const uint32_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -447,7 +447,7 @@ util_format_z24_unorm_s8_uscaled_pack_z_32unorm(uint8_t *dst_row, unsigned dst_s
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z24_unorm_s8_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride,
|
util_format_z24_unorm_s8_uint_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -468,7 +468,7 @@ util_format_z24_unorm_s8_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned ds
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z24_unorm_s8_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride,
|
util_format_z24_unorm_s8_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -494,7 +494,7 @@ util_format_z24_unorm_s8_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_z24_unorm_unpack_z_float(float *dst_row, unsigned dst_stride,
|
util_format_s8_uint_z24_unorm_unpack_z_float(float *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -515,7 +515,7 @@ util_format_s8_uscaled_z24_unorm_unpack_z_float(float *dst_row, unsigned dst_str
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_z24_unorm_pack_z_float(uint8_t *dst_row, unsigned dst_stride,
|
util_format_s8_uint_z24_unorm_pack_z_float(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const float *src_row, unsigned src_stride,
|
const float *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -541,7 +541,7 @@ util_format_s8_uscaled_z24_unorm_pack_z_float(uint8_t *dst_row, unsigned dst_str
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_z24_unorm_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride,
|
util_format_s8_uint_z24_unorm_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -562,7 +562,7 @@ util_format_s8_uscaled_z24_unorm_unpack_z_32unorm(uint32_t *dst_row, unsigned ds
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_z24_unorm_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride,
|
util_format_s8_uint_z24_unorm_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint32_t *src_row, unsigned src_stride,
|
const uint32_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -588,7 +588,7 @@ util_format_s8_uscaled_z24_unorm_pack_z_32unorm(uint8_t *dst_row, unsigned dst_s
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_z24_unorm_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride,
|
util_format_s8_uint_z24_unorm_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -609,7 +609,7 @@ util_format_s8_uscaled_z24_unorm_unpack_s_8uscaled(uint8_t *dst_row, unsigned ds
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_z24_unorm_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride,
|
util_format_s8_uint_z24_unorm_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -807,7 +807,7 @@ util_format_x8z24_unorm_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z32_float_s8x24_uscaled_unpack_z_float(float *dst_row, unsigned dst_stride,
|
util_format_z32_float_s8x24_uint_unpack_z_float(float *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -826,7 +826,7 @@ util_format_z32_float_s8x24_uscaled_unpack_z_float(float *dst_row, unsigned dst_
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z32_float_s8x24_uscaled_pack_z_float(uint8_t *dst_row, unsigned dst_stride,
|
util_format_z32_float_s8x24_uint_pack_z_float(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const float *src_row, unsigned src_stride,
|
const float *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -845,7 +845,7 @@ util_format_z32_float_s8x24_uscaled_pack_z_float(uint8_t *dst_row, unsigned dst_
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z32_float_s8x24_uscaled_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride,
|
util_format_z32_float_s8x24_uint_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -864,7 +864,7 @@ util_format_z32_float_s8x24_uscaled_unpack_z_32unorm(uint32_t *dst_row, unsigned
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z32_float_s8x24_uscaled_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride,
|
util_format_z32_float_s8x24_uint_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint32_t *src_row, unsigned src_stride,
|
const uint32_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -881,7 +881,7 @@ util_format_z32_float_s8x24_uscaled_pack_z_32unorm(uint8_t *dst_row, unsigned ds
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z32_float_s8x24_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride,
|
util_format_z32_float_s8x24_uint_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -900,7 +900,7 @@ util_format_z32_float_s8x24_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z32_float_s8x24_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride,
|
util_format_z32_float_s8x24_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
@ -920,54 +920,54 @@ util_format_z32_float_s8x24_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned d
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_x24s8_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
|
util_format_x24s8_uint_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
util_format_z24_unorm_s8_uscaled_unpack_s_8uscaled(dst_row, dst_stride,
|
util_format_z24_unorm_s8_uint_unpack_s_8uint(dst_row, dst_stride,
|
||||||
src_row, src_stride,
|
src_row, src_stride,
|
||||||
width, height);
|
width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_x24s8_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
|
util_format_x24s8_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
util_format_z24_unorm_s8_uscaled_pack_s_8uscaled(dst_row, dst_stride,
|
util_format_z24_unorm_s8_uint_pack_s_8uint(dst_row, dst_stride,
|
||||||
src_row, src_stride,
|
src_row, src_stride,
|
||||||
width, height);
|
width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8x24_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
|
util_format_s8x24_uint_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
util_format_s8_uscaled_z24_unorm_unpack_s_8uscaled(dst_row, dst_stride,
|
util_format_s8_uint_z24_unorm_unpack_s_8uint(dst_row, dst_stride,
|
||||||
src_row, src_stride,
|
src_row, src_stride,
|
||||||
width, height);
|
width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8x24_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
|
util_format_s8x24_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
util_format_s8_uscaled_z24_unorm_pack_s_8uscaled(dst_row, dst_stride,
|
util_format_s8_uint_z24_unorm_pack_s_8uint(dst_row, dst_stride,
|
||||||
src_row, src_stride,
|
src_row, src_stride,
|
||||||
width, height);
|
width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_x32_s8x24_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride,
|
util_format_x32_s8x24_uint_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
util_format_z32_float_s8x24_uscaled_unpack_s_8uscaled(dst_row, dst_stride,
|
util_format_z32_float_s8x24_uint_unpack_s_8uint(dst_row, dst_stride,
|
||||||
src_row, src_stride,
|
src_row, src_stride,
|
||||||
width, height);
|
width, height);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_x32_s8x24_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride,
|
util_format_x32_s8x24_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride,
|
||||||
const uint8_t *src_row, unsigned src_stride,
|
const uint8_t *src_row, unsigned src_stride,
|
||||||
unsigned width, unsigned height)
|
unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
util_format_z32_float_s8x24_uscaled_pack_s_8uscaled(dst_row, dst_stride,
|
util_format_z32_float_s8x24_uint_pack_s_8uint(dst_row, dst_stride,
|
||||||
src_row, src_stride,
|
src_row, src_stride,
|
||||||
width, height);
|
width, height);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,11 +34,11 @@
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_s8_uint_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_s8_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -90,51 +90,51 @@ util_format_z32_float_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride, cons
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z24_unorm_s8_uscaled_unpack_z_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_z24_unorm_s8_uint_unpack_z_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z24_unorm_s8_uscaled_pack_z_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_z24_unorm_s8_uint_pack_z_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z24_unorm_s8_uscaled_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_z24_unorm_s8_uint_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z24_unorm_s8_uscaled_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride, const uint32_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_z24_unorm_s8_uint_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride, const uint32_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z24_unorm_s8_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_z24_unorm_s8_uint_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z24_unorm_s8_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_z24_unorm_s8_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_z24_unorm_unpack_z_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_s8_uint_z24_unorm_unpack_z_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_z24_unorm_pack_z_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_s8_uint_z24_unorm_pack_z_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_z24_unorm_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_s8_uint_z24_unorm_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_z24_unorm_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride, const uint32_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_s8_uint_z24_unorm_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride, const uint32_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_z24_unorm_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_s8_uint_z24_unorm_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8_uscaled_z24_unorm_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_s8_uint_z24_unorm_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -170,43 +170,43 @@ util_format_x8z24_unorm_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride, co
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z32_float_s8x24_uscaled_unpack_z_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_z32_float_s8x24_uint_unpack_z_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z32_float_s8x24_uscaled_pack_z_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_z32_float_s8x24_uint_pack_z_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z32_float_s8x24_uscaled_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_z32_float_s8x24_uint_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z32_float_s8x24_uscaled_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride, const uint32_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_z32_float_s8x24_uint_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride, const uint32_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z32_float_s8x24_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_z32_float_s8x24_uint_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_z32_float_s8x24_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_z32_float_s8x24_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_x24s8_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_x24s8_uint_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_x24s8_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_x24s8_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8x24_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_s8x24_uint_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_s8x24_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_s8x24_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_x32_s8x24_uscaled_unpack_s_8uscaled(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_x32_s8x24_uint_unpack_s_8uint(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
|
|
||||||
void
|
void
|
||||||
util_format_x32_s8x24_uscaled_pack_s_8uscaled(uint8_t *dst_row, unsigned dst_sride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
util_format_x32_s8x24_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_sride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height);
|
||||||
#endif /* U_FORMAT_ZS_H_ */
|
#endif /* U_FORMAT_ZS_H_ */
|
||||||
|
|
|
@ -443,13 +443,13 @@ util_pack_mask_z(enum pipe_format format, uint32_t z)
|
||||||
case PIPE_FORMAT_Z32_UNORM:
|
case PIPE_FORMAT_Z32_UNORM:
|
||||||
case PIPE_FORMAT_Z32_FLOAT:
|
case PIPE_FORMAT_Z32_FLOAT:
|
||||||
return z;
|
return z;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
return z & 0xffffff;
|
return z & 0xffffff;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
return (z & 0xffffff) << 8;
|
return (z & 0xffffff) << 8;
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
return 0;
|
return 0;
|
||||||
default:
|
default:
|
||||||
debug_print_format("gallium: unhandled format in util_pack_mask_z()", format);
|
debug_print_format("gallium: unhandled format in util_pack_mask_z()", format);
|
||||||
|
@ -463,7 +463,7 @@ static INLINE uint64_t
|
||||||
util_pack64_mask_z(enum pipe_format format, uint32_t z)
|
util_pack64_mask_z(enum pipe_format format, uint32_t z)
|
||||||
{
|
{
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
return z;
|
return z;
|
||||||
default:
|
default:
|
||||||
return util_pack_mask_z(format, z);
|
return util_pack_mask_z(format, z);
|
||||||
|
@ -477,13 +477,13 @@ util_pack_mask_z_stencil(enum pipe_format format, uint32_t z, uint8_t s)
|
||||||
uint32_t packed = util_pack_mask_z(format, z);
|
uint32_t packed = util_pack_mask_z(format, z);
|
||||||
|
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
packed |= (uint32_t)s << 24;
|
packed |= (uint32_t)s << 24;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
packed |= s;
|
packed |= s;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
packed |= s;
|
packed |= s;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -500,7 +500,7 @@ util_pack64_mask_z_stencil(enum pipe_format format, uint32_t z, uint8_t s)
|
||||||
uint64_t packed;
|
uint64_t packed;
|
||||||
|
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
packed = util_pack64_mask_z(format, z);
|
packed = util_pack64_mask_z(format, z);
|
||||||
packed |= (uint64_t)s << 32ull;
|
packed |= (uint64_t)s << 32ull;
|
||||||
return packed;
|
return packed;
|
||||||
|
@ -534,17 +534,17 @@ util_pack_z(enum pipe_format format, double z)
|
||||||
case PIPE_FORMAT_Z32_FLOAT:
|
case PIPE_FORMAT_Z32_FLOAT:
|
||||||
fui.f = (float)z;
|
fui.f = (float)z;
|
||||||
return fui.ui;
|
return fui.ui;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
if (z == 1.0)
|
if (z == 1.0)
|
||||||
return 0xffffff;
|
return 0xffffff;
|
||||||
return (uint32_t) (z * 0xffffff);
|
return (uint32_t) (z * 0xffffff);
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
if (z == 1.0)
|
if (z == 1.0)
|
||||||
return 0xffffff00;
|
return 0xffffff00;
|
||||||
return ((uint32_t) (z * 0xffffff)) << 8;
|
return ((uint32_t) (z * 0xffffff)) << 8;
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
/* this case can get it via util_pack_z_stencil() */
|
/* this case can get it via util_pack_z_stencil() */
|
||||||
return 0;
|
return 0;
|
||||||
default:
|
default:
|
||||||
|
@ -564,7 +564,7 @@ util_pack64_z(enum pipe_format format, double z)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
fui.f = (float)z;
|
fui.f = (float)z;
|
||||||
return fui.ui;
|
return fui.ui;
|
||||||
default:
|
default:
|
||||||
|
@ -583,13 +583,13 @@ util_pack_z_stencil(enum pipe_format format, double z, uint8_t s)
|
||||||
uint32_t packed = util_pack_z(format, z);
|
uint32_t packed = util_pack_z(format, z);
|
||||||
|
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
packed |= (uint32_t)s << 24;
|
packed |= (uint32_t)s << 24;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
packed |= s;
|
packed |= s;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
packed |= s;
|
packed |= s;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -606,7 +606,7 @@ util_pack64_z_stencil(enum pipe_format format, double z, uint8_t s)
|
||||||
uint64_t packed;
|
uint64_t packed;
|
||||||
|
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
packed = util_pack64_z(format, z);
|
packed = util_pack64_z(format, z);
|
||||||
packed |= (uint64_t)s << 32ull;
|
packed |= (uint64_t)s << 32ull;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -311,7 +311,7 @@ util_clear_depth_stencil(struct pipe_context *pipe,
|
||||||
|
|
||||||
switch (util_format_get_blocksize(dst->format)) {
|
switch (util_format_get_blocksize(dst->format)) {
|
||||||
case 1:
|
case 1:
|
||||||
assert(dst->format == PIPE_FORMAT_S8_USCALED);
|
assert(dst->format == PIPE_FORMAT_S8_UINT);
|
||||||
if(dst_stride == width)
|
if(dst_stride == width)
|
||||||
memset(dst_map, (ubyte) zstencil, height * width);
|
memset(dst_map, (ubyte) zstencil, height * width);
|
||||||
else {
|
else {
|
||||||
|
@ -341,10 +341,10 @@ util_clear_depth_stencil(struct pipe_context *pipe,
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
uint32_t dst_mask;
|
uint32_t dst_mask;
|
||||||
if (dst->format == PIPE_FORMAT_Z24_UNORM_S8_USCALED)
|
if (dst->format == PIPE_FORMAT_Z24_UNORM_S8_UINT)
|
||||||
dst_mask = 0xffffff00;
|
dst_mask = 0xffffff00;
|
||||||
else {
|
else {
|
||||||
assert(dst->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM);
|
assert(dst->format == PIPE_FORMAT_S8_UINT_Z24_UNORM);
|
||||||
dst_mask = 0xffffff;
|
dst_mask = 0xffffff;
|
||||||
}
|
}
|
||||||
if (clear_flags & PIPE_CLEAR_DEPTH)
|
if (clear_flags & PIPE_CLEAR_DEPTH)
|
||||||
|
@ -364,7 +364,7 @@ util_clear_depth_stencil(struct pipe_context *pipe,
|
||||||
uint64_t zstencil = util_pack64_z_stencil(dst->texture->format,
|
uint64_t zstencil = util_pack64_z_stencil(dst->texture->format,
|
||||||
depth, stencil);
|
depth, stencil);
|
||||||
|
|
||||||
assert(dst->format == PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED);
|
assert(dst->format == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT);
|
||||||
|
|
||||||
if (!need_rmw) {
|
if (!need_rmw) {
|
||||||
for (i = 0; i < height; i++) {
|
for (i = 0; i < height; i++) {
|
||||||
|
|
|
@ -164,7 +164,7 @@ z32_get_tile_rgba(const unsigned *src,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*** PIPE_FORMAT_Z24_UNORM_S8_USCALED ***/
|
/*** PIPE_FORMAT_Z24_UNORM_S8_UINT ***/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return Z component as four float in [0,1]. Stencil part ignored.
|
* Return Z component as four float in [0,1]. Stencil part ignored.
|
||||||
|
@ -191,7 +191,7 @@ s8z24_get_tile_rgba(const unsigned *src,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*** PIPE_FORMAT_S8_USCALED_Z24_UNORM ***/
|
/*** PIPE_FORMAT_S8_UINT_Z24_UNORM ***/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return Z component as four float in [0,1]. Stencil part ignored.
|
* Return Z component as four float in [0,1]. Stencil part ignored.
|
||||||
|
@ -217,7 +217,7 @@ z24s8_get_tile_rgba(const unsigned *src,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*** PIPE_FORMAT_S8X24_USCALED ***/
|
/*** PIPE_FORMAT_S8X24_UINT ***/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return S component as four uint32_t in [0..255]. Z part ignored.
|
* Return S component as four uint32_t in [0..255]. Z part ignored.
|
||||||
|
@ -244,7 +244,7 @@ s8x24_get_tile_rgba(const unsigned *src,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*** PIPE_FORMAT_X24S8_USCALED ***/
|
/*** PIPE_FORMAT_X24S8_UINT ***/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return S component as four uint32_t in [0..255]. Z part ignored.
|
* Return S component as four uint32_t in [0..255]. Z part ignored.
|
||||||
|
@ -318,7 +318,7 @@ z32f_get_tile_rgba(const float *src,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*** PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED ***/
|
/*** PIPE_FORMAT_Z32_FLOAT_S8X24_UINT ***/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return each Z value as four floats in [0,1].
|
* Return each Z value as four floats in [0,1].
|
||||||
|
@ -358,27 +358,27 @@ pipe_tile_raw_to_rgba(enum pipe_format format,
|
||||||
case PIPE_FORMAT_Z32_UNORM:
|
case PIPE_FORMAT_Z32_UNORM:
|
||||||
z32_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
z32_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
s8z24_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
s8z24_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
s8_get_tile_rgba((unsigned char *) src, w, h, dst, dst_stride);
|
s8_get_tile_rgba((unsigned char *) src, w, h, dst, dst_stride);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_X24S8_USCALED:
|
case PIPE_FORMAT_X24S8_UINT:
|
||||||
s8x24_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
s8x24_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
z24s8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
z24s8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8X24_USCALED:
|
case PIPE_FORMAT_S8X24_UINT:
|
||||||
x24s8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
x24s8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT:
|
case PIPE_FORMAT_Z32_FLOAT:
|
||||||
z32f_get_tile_rgba((float *) src, w, h, dst, dst_stride);
|
z32f_get_tile_rgba((float *) src, w, h, dst, dst_stride);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
z32f_x24s8_get_tile_rgba((float *) src, w, h, dst, dst_stride);
|
z32f_x24s8_get_tile_rgba((float *) src, w, h, dst, dst_stride);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -489,18 +489,18 @@ pipe_put_tile_rgba_format(struct pipe_context *pipe,
|
||||||
case PIPE_FORMAT_Z32_UNORM:
|
case PIPE_FORMAT_Z32_UNORM:
|
||||||
/*z32_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
/*z32_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
/*s8z24_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
/*s8z24_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
/*z24s8_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
/*z24s8_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT:
|
case PIPE_FORMAT_Z32_FLOAT:
|
||||||
/*z32f_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
/*z32f_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
/*z32f_s8x24_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
/*z32f_s8x24_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -607,7 +607,7 @@ pipe_get_tile_z(struct pipe_context *pipe,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
{
|
{
|
||||||
const uint *ptrc
|
const uint *ptrc
|
||||||
|
@ -622,7 +622,7 @@ pipe_get_tile_z(struct pipe_context *pipe,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
{
|
{
|
||||||
const uint *ptrc
|
const uint *ptrc
|
||||||
|
@ -691,7 +691,7 @@ pipe_put_tile_z(struct pipe_context *pipe,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
{
|
{
|
||||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||||
/*assert((pt->usage & PIPE_TRANSFER_READ_WRITE) == PIPE_TRANSFER_READ_WRITE);*/
|
/*assert((pt->usage & PIPE_TRANSFER_READ_WRITE) == PIPE_TRANSFER_READ_WRITE);*/
|
||||||
|
@ -718,7 +718,7 @@ pipe_put_tile_z(struct pipe_context *pipe,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
{
|
{
|
||||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||||
/*assert((pt->usage & PIPE_TRANSFER_READ_WRITE) == PIPE_TRANSFER_READ_WRITE);*/
|
/*assert((pt->usage & PIPE_TRANSFER_READ_WRITE) == PIPE_TRANSFER_READ_WRITE);*/
|
||||||
|
|
|
@ -1859,7 +1859,7 @@ gen_depth_stencil(struct cell_context *cell,
|
||||||
spe_comment(f, 0, "Fetch Z/stencil quad from tile");
|
spe_comment(f, 0, "Fetch Z/stencil quad from tile");
|
||||||
|
|
||||||
switch(zs_format) {
|
switch(zs_format) {
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED: /* fall through */
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT: /* fall through */
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
/* prepare mask to extract Z vals from ZS vals */
|
/* prepare mask to extract Z vals from ZS vals */
|
||||||
spe_load_uint(f, zmask_reg, 0x00ffffff);
|
spe_load_uint(f, zmask_reg, 0x00ffffff);
|
||||||
|
@ -1880,7 +1880,7 @@ gen_depth_stencil(struct cell_context *cell,
|
||||||
spe_rotmi(f, fbS_reg, fbZS_reg, -24);
|
spe_rotmi(f, fbS_reg, fbZS_reg, -24);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM: /* fall through */
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM: /* fall through */
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
/* convert fragment Z from [0,1] to 32-bit ints */
|
/* convert fragment Z from [0,1] to 32-bit ints */
|
||||||
spe_cfltu(f, fragZ_reg, fragZ_reg, 32);
|
spe_cfltu(f, fragZ_reg, fragZ_reg, 32);
|
||||||
|
@ -1969,12 +1969,12 @@ gen_depth_stencil(struct cell_context *cell,
|
||||||
* fbS_reg has four 8-bit Z values in bits [7..0].
|
* fbS_reg has four 8-bit Z values in bits [7..0].
|
||||||
*/
|
*/
|
||||||
spe_comment(f, 0, "Store quad's depth/stencil values in tile");
|
spe_comment(f, 0, "Store quad's depth/stencil values in tile");
|
||||||
if (zs_format == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
if (zs_format == PIPE_FORMAT_Z24_UNORM_S8_UINT ||
|
||||||
zs_format == PIPE_FORMAT_Z24X8_UNORM) {
|
zs_format == PIPE_FORMAT_Z24X8_UNORM) {
|
||||||
spe_shli(f, fbS_reg, fbS_reg, 24); /* fbS = fbS << 24 */
|
spe_shli(f, fbS_reg, fbS_reg, 24); /* fbS = fbS << 24 */
|
||||||
spe_or(f, fbZS_reg, fbS_reg, fbZ_reg); /* fbZS = fbS | fbZ */
|
spe_or(f, fbZS_reg, fbS_reg, fbZ_reg); /* fbZS = fbS | fbZ */
|
||||||
}
|
}
|
||||||
else if (zs_format == PIPE_FORMAT_S8_USCALED_Z24_UNORM ||
|
else if (zs_format == PIPE_FORMAT_S8_UINT_Z24_UNORM ||
|
||||||
zs_format == PIPE_FORMAT_X8Z24_UNORM) {
|
zs_format == PIPE_FORMAT_X8Z24_UNORM) {
|
||||||
spe_shli(f, fbZ_reg, fbZ_reg, 8); /* fbZ = fbZ << 8 */
|
spe_shli(f, fbZ_reg, fbZ_reg, 8); /* fbZ = fbZ << 8 */
|
||||||
spe_or(f, fbZS_reg, fbS_reg, fbZ_reg); /* fbZS = fbS | fbZ */
|
spe_or(f, fbZS_reg, fbS_reg, fbZ_reg); /* fbZS = fbS | fbZ */
|
||||||
|
@ -1985,7 +1985,7 @@ gen_depth_stencil(struct cell_context *cell,
|
||||||
else if (zs_format == PIPE_FORMAT_Z16_UNORM) {
|
else if (zs_format == PIPE_FORMAT_Z16_UNORM) {
|
||||||
spe_move(f, fbZS_reg, fbZ_reg); /* fbZS = fbZ */
|
spe_move(f, fbZS_reg, fbZ_reg); /* fbZS = fbZ */
|
||||||
}
|
}
|
||||||
else if (zs_format == PIPE_FORMAT_S8_USCALED) {
|
else if (zs_format == PIPE_FORMAT_S8_UINT) {
|
||||||
ASSERT(0); /* XXX to do */
|
ASSERT(0); /* XXX to do */
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -2015,7 +2015,7 @@ gen_depth_stencil(struct cell_context *cell,
|
||||||
* code before the fragment shader to cull fragments/quads that are
|
* code before the fragment shader to cull fragments/quads that are
|
||||||
* totally occluded/discarded.
|
* totally occluded/discarded.
|
||||||
*
|
*
|
||||||
* XXX we only support PIPE_FORMAT_S8_USCALED_Z24_UNORM z/stencil buffer right now.
|
* XXX we only support PIPE_FORMAT_S8_UINT_Z24_UNORM z/stencil buffer right now.
|
||||||
*
|
*
|
||||||
* See the spu_default_fragment_ops() function to see how the per-fragment
|
* See the spu_default_fragment_ops() function to see how the per-fragment
|
||||||
* operations would be done with ordinary C code.
|
* operations would be done with ordinary C code.
|
||||||
|
|
|
@ -166,7 +166,7 @@ cell_is_format_supported( struct pipe_screen *screen,
|
||||||
|
|
||||||
/* only a few formats are known to work at this time */
|
/* only a few formats are known to work at this time */
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||||
case PIPE_FORMAT_I8_UNORM:
|
case PIPE_FORMAT_I8_UNORM:
|
||||||
|
|
|
@ -337,8 +337,8 @@ cmd_state_framebuffer(const struct cell_command_framebuffer *cmd)
|
||||||
spu.fb.zsize = 4;
|
spu.fb.zsize = 4;
|
||||||
spu.fb.zscale = (float) 0xffffffffu;
|
spu.fb.zscale = (float) 0xffffffffu;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
spu.fb.zsize = 4;
|
spu.fb.zsize = 4;
|
||||||
|
|
|
@ -138,13 +138,13 @@ spu_fallback_fragment_ops(uint x, uint y,
|
||||||
|
|
||||||
if (spu.depth_stencil_alpha.stencil[0].enabled) {
|
if (spu.depth_stencil_alpha.stencil[0].enabled) {
|
||||||
/* do stencil test */
|
/* do stencil test */
|
||||||
ASSERT(spu.fb.depth_format == PIPE_FORMAT_Z24_UNORM_S8_USCALED);
|
ASSERT(spu.fb.depth_format == PIPE_FORMAT_Z24_UNORM_S8_UINT);
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (spu.depth_stencil_alpha.depth.enabled) {
|
else if (spu.depth_stencil_alpha.depth.enabled) {
|
||||||
/* do depth test */
|
/* do depth test */
|
||||||
|
|
||||||
ASSERT(spu.fb.depth_format == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
ASSERT(spu.fb.depth_format == PIPE_FORMAT_Z24_UNORM_S8_UINT ||
|
||||||
spu.fb.depth_format == PIPE_FORMAT_Z24X8_UNORM);
|
spu.fb.depth_format == PIPE_FORMAT_Z24X8_UNORM);
|
||||||
|
|
||||||
vector unsigned int ifragZ;
|
vector unsigned int ifragZ;
|
||||||
|
|
|
@ -93,7 +93,7 @@ i915_clear_emit(struct pipe_context *pipe, unsigned buffers,
|
||||||
if (util_format_get_blocksize(depth_tex->b.b.format) == 4) {
|
if (util_format_get_blocksize(depth_tex->b.b.format) == 4) {
|
||||||
/* Avoid read-modify-write if there's no stencil. */
|
/* Avoid read-modify-write if there's no stencil. */
|
||||||
if (buffers & PIPE_CLEAR_STENCIL
|
if (buffers & PIPE_CLEAR_STENCIL
|
||||||
|| depth_tex->b.b.format != PIPE_FORMAT_Z24_UNORM_S8_USCALED) {
|
|| depth_tex->b.b.format != PIPE_FORMAT_Z24_UNORM_S8_UINT) {
|
||||||
clear_params |= CLEARPARAM_WRITE_STENCIL;
|
clear_params |= CLEARPARAM_WRITE_STENCIL;
|
||||||
clear_stencil = packed_z_stencil & 0xff;
|
clear_stencil = packed_z_stencil & 0xff;
|
||||||
clear_depth = packed_z_stencil;
|
clear_depth = packed_z_stencil;
|
||||||
|
@ -110,7 +110,7 @@ i915_clear_emit(struct pipe_context *pipe, unsigned buffers,
|
||||||
|
|
||||||
clear_params |= CLEARPARAM_WRITE_STENCIL;
|
clear_params |= CLEARPARAM_WRITE_STENCIL;
|
||||||
depth_tex = i915_texture(zbuf->texture);
|
depth_tex = i915_texture(zbuf->texture);
|
||||||
assert(depth_tex->b.b.format == PIPE_FORMAT_Z24_UNORM_S8_USCALED);
|
assert(depth_tex->b.b.format == PIPE_FORMAT_Z24_UNORM_S8_UINT);
|
||||||
|
|
||||||
packed_z_stencil = util_pack_z_stencil(depth_tex->b.b.format, depth, stencil);
|
packed_z_stencil = util_pack_z_stencil(depth_tex->b.b.format, depth, stencil);
|
||||||
depth_clear_bbp = 32;
|
depth_clear_bbp = 32;
|
||||||
|
|
|
@ -293,7 +293,7 @@ i915_is_format_supported(struct pipe_screen *screen,
|
||||||
PIPE_FORMAT_DXT3_RGBA,
|
PIPE_FORMAT_DXT3_RGBA,
|
||||||
PIPE_FORMAT_DXT5_RGBA,
|
PIPE_FORMAT_DXT5_RGBA,
|
||||||
PIPE_FORMAT_Z24X8_UNORM,
|
PIPE_FORMAT_Z24X8_UNORM,
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
PIPE_FORMAT_Z24_UNORM_S8_UINT,
|
||||||
PIPE_FORMAT_NONE /* list terminator */
|
PIPE_FORMAT_NONE /* list terminator */
|
||||||
};
|
};
|
||||||
static const enum pipe_format render_supported[] = {
|
static const enum pipe_format render_supported[] = {
|
||||||
|
@ -310,7 +310,7 @@ i915_is_format_supported(struct pipe_screen *screen,
|
||||||
/* XXX why not?
|
/* XXX why not?
|
||||||
PIPE_FORMAT_Z16_UNORM, */
|
PIPE_FORMAT_Z16_UNORM, */
|
||||||
PIPE_FORMAT_Z24X8_UNORM,
|
PIPE_FORMAT_Z24X8_UNORM,
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
PIPE_FORMAT_Z24_UNORM_S8_UINT,
|
||||||
PIPE_FORMAT_NONE /* list terminator */
|
PIPE_FORMAT_NONE /* list terminator */
|
||||||
};
|
};
|
||||||
const enum pipe_format *list;
|
const enum pipe_format *list;
|
||||||
|
|
|
@ -193,7 +193,7 @@ static uint translate_texture_format(enum pipe_format pipeFormat,
|
||||||
view->swizzle_g != PIPE_SWIZZLE_GREEN ||
|
view->swizzle_g != PIPE_SWIZZLE_GREEN ||
|
||||||
view->swizzle_b != PIPE_SWIZZLE_BLUE ||
|
view->swizzle_b != PIPE_SWIZZLE_BLUE ||
|
||||||
view->swizzle_a != PIPE_SWIZZLE_ALPHA ) &&
|
view->swizzle_a != PIPE_SWIZZLE_ALPHA ) &&
|
||||||
pipeFormat != PIPE_FORMAT_Z24_UNORM_S8_USCALED &&
|
pipeFormat != PIPE_FORMAT_Z24_UNORM_S8_UINT &&
|
||||||
pipeFormat != PIPE_FORMAT_Z24X8_UNORM )
|
pipeFormat != PIPE_FORMAT_Z24X8_UNORM )
|
||||||
debug_printf("i915: unsupported texture swizzle for format %d\n", pipeFormat);
|
debug_printf("i915: unsupported texture swizzle for format %d\n", pipeFormat);
|
||||||
|
|
||||||
|
@ -240,7 +240,7 @@ static uint translate_texture_format(enum pipe_format pipeFormat,
|
||||||
return (MAPSURF_COMPRESSED | MT_COMPRESS_DXT2_3);
|
return (MAPSURF_COMPRESSED | MT_COMPRESS_DXT2_3);
|
||||||
case PIPE_FORMAT_DXT5_RGBA:
|
case PIPE_FORMAT_DXT5_RGBA:
|
||||||
return (MAPSURF_COMPRESSED | MT_COMPRESS_DXT4_5);
|
return (MAPSURF_COMPRESSED | MT_COMPRESS_DXT4_5);
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
{
|
{
|
||||||
if ( view->swizzle_r == PIPE_SWIZZLE_RED &&
|
if ( view->swizzle_r == PIPE_SWIZZLE_RED &&
|
||||||
|
|
|
@ -64,7 +64,7 @@ static unsigned translate_depth_format(enum pipe_format zformat)
|
||||||
{
|
{
|
||||||
switch (zformat) {
|
switch (zformat) {
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
return DEPTH_FRMT_24_FIXED_8_OTHER;
|
return DEPTH_FRMT_24_FIXED_8_OTHER;
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
return DEPTH_FRMT_16_FIXED;
|
return DEPTH_FRMT_16_FIXED;
|
||||||
|
|
|
@ -251,7 +251,7 @@ i915_clear_depth_stencil_blitter(struct pipe_context *pipe,
|
||||||
(otherwise this won't work anyway). Hence will only want to
|
(otherwise this won't work anyway). Hence will only want to
|
||||||
do it if really have stencil and it isn't cleared */
|
do it if really have stencil and it isn't cleared */
|
||||||
if ((clear_flags & PIPE_CLEAR_STENCIL) ||
|
if ((clear_flags & PIPE_CLEAR_STENCIL) ||
|
||||||
(dst->format != PIPE_FORMAT_Z24_UNORM_S8_USCALED))
|
(dst->format != PIPE_FORMAT_Z24_UNORM_S8_UINT))
|
||||||
mask |= XY_COLOR_BLT_WRITE_ALPHA;
|
mask |= XY_COLOR_BLT_WRITE_ALPHA;
|
||||||
|
|
||||||
i915_fill_blit( i915_context(pipe),
|
i915_fill_blit( i915_context(pipe),
|
||||||
|
|
|
@ -266,7 +266,7 @@ static int emit_depthbuffer(struct brw_context *brw)
|
||||||
cpp = 2;
|
cpp = 2;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
format = BRW_DEPTHFORMAT_D24_UNORM_S8_UINT;
|
format = BRW_DEPTHFORMAT_D24_UNORM_S8_UINT;
|
||||||
cpp = 4;
|
cpp = 4;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -152,7 +152,7 @@ static void zstencil_clear(struct brw_context *brw,
|
||||||
value = tmp.ui;
|
value = tmp.ui;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
value = ((unsigned)(depth * MASK24) & MASK24);
|
value = ((unsigned)(depth * MASK24) & MASK24);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
|
@ -171,7 +171,7 @@ static void zstencil_clear(struct brw_context *brw,
|
||||||
value = value | (stencil << 24);
|
value = value | (stencil << 24);
|
||||||
mask |= XY_BLT_WRITE_ALPHA;
|
mask |= XY_BLT_WRITE_ALPHA;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
value = value | (stencil << 24);
|
value = value | (stencil << 24);
|
||||||
if (clear_flags & PIPE_CLEAR_STENCIL)
|
if (clear_flags & PIPE_CLEAR_STENCIL)
|
||||||
mask |= XY_BLT_WRITE_ALPHA;
|
mask |= XY_BLT_WRITE_ALPHA;
|
||||||
|
|
|
@ -176,7 +176,7 @@ static GLuint translate_tex_format( enum pipe_format pf )
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
return BRW_SURFACEFORMAT_I16_UNORM;
|
return BRW_SURFACEFORMAT_I16_UNORM;
|
||||||
|
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
return BRW_SURFACEFORMAT_I24X8_UNORM;
|
return BRW_SURFACEFORMAT_I24X8_UNORM;
|
||||||
|
|
||||||
|
|
|
@ -311,7 +311,7 @@ brw_is_format_supported(struct pipe_screen *screen,
|
||||||
/* depth */
|
/* depth */
|
||||||
PIPE_FORMAT_Z32_FLOAT,
|
PIPE_FORMAT_Z32_FLOAT,
|
||||||
PIPE_FORMAT_Z24X8_UNORM,
|
PIPE_FORMAT_Z24X8_UNORM,
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
PIPE_FORMAT_Z24_UNORM_S8_UINT,
|
||||||
PIPE_FORMAT_Z16_UNORM,
|
PIPE_FORMAT_Z16_UNORM,
|
||||||
/* signed */
|
/* signed */
|
||||||
PIPE_FORMAT_R8G8_SNORM,
|
PIPE_FORMAT_R8G8_SNORM,
|
||||||
|
@ -327,7 +327,7 @@ brw_is_format_supported(struct pipe_screen *screen,
|
||||||
static const enum pipe_format depth_supported[] = {
|
static const enum pipe_format depth_supported[] = {
|
||||||
PIPE_FORMAT_Z32_FLOAT,
|
PIPE_FORMAT_Z32_FLOAT,
|
||||||
PIPE_FORMAT_Z24X8_UNORM,
|
PIPE_FORMAT_Z24X8_UNORM,
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
PIPE_FORMAT_Z24_UNORM_S8_UINT,
|
||||||
PIPE_FORMAT_Z16_UNORM,
|
PIPE_FORMAT_Z16_UNORM,
|
||||||
PIPE_FORMAT_NONE /* list terminator */
|
PIPE_FORMAT_NONE /* list terminator */
|
||||||
};
|
};
|
||||||
|
|
|
@ -521,8 +521,8 @@ lp_build_depth_stencil_test(struct gallivm_state *gallivm,
|
||||||
assert(format_desc->block.height == 1);
|
assert(format_desc->block.height == 1);
|
||||||
|
|
||||||
if (stencil[0].enabled) {
|
if (stencil[0].enabled) {
|
||||||
assert(format_desc->format == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
assert(format_desc->format == PIPE_FORMAT_Z24_UNORM_S8_UINT ||
|
||||||
format_desc->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM);
|
format_desc->format == PIPE_FORMAT_S8_UINT_Z24_UNORM);
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(z_swizzle < 4);
|
assert(z_swizzle < 4);
|
||||||
|
|
|
@ -115,7 +115,7 @@ const struct nv50_format nv50_format_table[PIPE_FORMAT_COUNT] =
|
||||||
B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z16, 0),
|
B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z16, 0),
|
||||||
SAMPLER_VIEW | DEPTH_STENCIL },
|
SAMPLER_VIEW | DEPTH_STENCIL },
|
||||||
|
|
||||||
[PIPE_FORMAT_Z24_UNORM_S8_USCALED] = { NV50_ZETA_FORMAT_Z24_S8_UNORM,
|
[PIPE_FORMAT_Z24_UNORM_S8_UINT] = { NV50_ZETA_FORMAT_Z24_S8_UNORM,
|
||||||
B_(C0, C1, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z24_S8, 0),
|
B_(C0, C1, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z24_S8, 0),
|
||||||
SAMPLER_VIEW | DEPTH_STENCIL },
|
SAMPLER_VIEW | DEPTH_STENCIL },
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ const struct nv50_format nv50_format_table[PIPE_FORMAT_COUNT] =
|
||||||
B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z24_X8, 0),
|
B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z24_X8, 0),
|
||||||
SAMPLER_VIEW | DEPTH_STENCIL },
|
SAMPLER_VIEW | DEPTH_STENCIL },
|
||||||
|
|
||||||
[PIPE_FORMAT_S8_USCALED_Z24_UNORM] = { NV50_ZETA_FORMAT_S8_Z24_UNORM,
|
[PIPE_FORMAT_S8_UINT_Z24_UNORM] = { NV50_ZETA_FORMAT_S8_Z24_UNORM,
|
||||||
B_(C1, C0, C1, ONE_FLOAT, UINT, UNORM, UINT, UINT, S8_Z24, 0),
|
B_(C1, C0, C1, ONE_FLOAT, UINT, UNORM, UINT, UINT, S8_Z24, 0),
|
||||||
SAMPLER_VIEW | DEPTH_STENCIL },
|
SAMPLER_VIEW | DEPTH_STENCIL },
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ const struct nv50_format nv50_format_table[PIPE_FORMAT_COUNT] =
|
||||||
B_(C0, C0, C0, ONE_FLOAT, FLOAT, UINT, UINT, UINT, Z32, 0),
|
B_(C0, C0, C0, ONE_FLOAT, FLOAT, UINT, UINT, UINT, Z32, 0),
|
||||||
SAMPLER_VIEW | DEPTH_STENCIL },
|
SAMPLER_VIEW | DEPTH_STENCIL },
|
||||||
|
|
||||||
[PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED] = { NV50_ZETA_FORMAT_Z32_S8_X24_FLOAT,
|
[PIPE_FORMAT_Z32_FLOAT_S8X24_UINT] = { NV50_ZETA_FORMAT_Z32_S8_X24_FLOAT,
|
||||||
B_(C0, C0, C0, ONE_FLOAT, FLOAT, UINT, UINT, UINT, Z32_S8_X24, 0),
|
B_(C0, C0, C0, ONE_FLOAT, FLOAT, UINT, UINT, UINT, Z32_S8_X24, 0),
|
||||||
SAMPLER_VIEW | DEPTH_STENCIL },
|
SAMPLER_VIEW | DEPTH_STENCIL },
|
||||||
|
|
||||||
|
|
|
@ -48,17 +48,17 @@ nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
tile_flags = 0x6c00 + (ms << 8);
|
tile_flags = 0x6c00 + (ms << 8);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
tile_flags = 0x1800 + (ms << 8);
|
tile_flags = 0x1800 + (ms << 8);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
tile_flags = 0x22800 + (ms << 8);
|
tile_flags = 0x22800 + (ms << 8);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT:
|
case PIPE_FORMAT_Z32_FLOAT:
|
||||||
tile_flags = 0x4000 + (ms << 8);
|
tile_flags = 0x4000 + (ms << 8);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
tile_flags = 0x6000 + (ms << 8);
|
tile_flags = 0x6000 + (ms << 8);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -482,7 +482,7 @@ nv50_blitctx_make_fp(struct nv50_blitctx *blit)
|
||||||
{
|
{
|
||||||
static const uint32_t code[] =
|
static const uint32_t code[] =
|
||||||
{
|
{
|
||||||
/* 3 coords RGBA in, RGBA out, also for Z32_FLOAT(_S8X24_USCALED) */
|
/* 3 coords RGBA in, RGBA out, also for Z32_FLOAT(_S8X24_UINT) */
|
||||||
0x80000000, /* interp $r0 v[0x0] */
|
0x80000000, /* interp $r0 v[0x0] */
|
||||||
0x80010004, /* interp $r1 v[0x4] */
|
0x80010004, /* interp $r1 v[0x4] */
|
||||||
0x80020009, /* interp $r2 flat v[0x8] */
|
0x80020009, /* interp $r2 flat v[0x8] */
|
||||||
|
@ -606,11 +606,11 @@ nv50_blit_zeta_to_colour_format(enum pipe_format format)
|
||||||
{
|
{
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIPE_FORMAT_Z16_UNORM: return PIPE_FORMAT_R16_UNORM;
|
case PIPE_FORMAT_Z16_UNORM: return PIPE_FORMAT_R16_UNORM;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM: return PIPE_FORMAT_R8G8B8A8_UNORM;
|
case PIPE_FORMAT_Z24X8_UNORM: return PIPE_FORMAT_R8G8B8A8_UNORM;
|
||||||
case PIPE_FORMAT_Z32_FLOAT: return PIPE_FORMAT_R32_FLOAT;
|
case PIPE_FORMAT_Z32_FLOAT: return PIPE_FORMAT_R32_FLOAT;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED: return PIPE_FORMAT_R32G32_FLOAT;
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT: return PIPE_FORMAT_R32G32_FLOAT;
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
return PIPE_FORMAT_NONE;
|
return PIPE_FORMAT_NONE;
|
||||||
|
@ -625,14 +625,14 @@ nv50_blitctx_get_color_mask_and_fp(struct nv50_blitctx *blit,
|
||||||
|
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
blit->fp_offset = 160;
|
blit->fp_offset = 160;
|
||||||
if (mask & PIPE_MASK_Z)
|
if (mask & PIPE_MASK_Z)
|
||||||
blit->color_mask |= 0x0111;
|
blit->color_mask |= 0x0111;
|
||||||
if (mask & PIPE_MASK_S)
|
if (mask & PIPE_MASK_S)
|
||||||
blit->color_mask |= 0x1000;
|
blit->color_mask |= 0x1000;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
blit->fp_offset = 24;
|
blit->fp_offset = 24;
|
||||||
if (mask & PIPE_MASK_Z)
|
if (mask & PIPE_MASK_Z)
|
||||||
blit->color_mask |= 0x1110;
|
blit->color_mask |= 0x1110;
|
||||||
|
|
|
@ -116,7 +116,7 @@ const struct nvc0_format nvc0_format_table[PIPE_FORMAT_COUNT] =
|
||||||
B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z16, 0),
|
B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z16, 0),
|
||||||
SAMPLER_VIEW | DEPTH_STENCIL },
|
SAMPLER_VIEW | DEPTH_STENCIL },
|
||||||
|
|
||||||
[PIPE_FORMAT_Z24_UNORM_S8_USCALED] = { NV50_ZETA_FORMAT_Z24_S8_UNORM,
|
[PIPE_FORMAT_Z24_UNORM_S8_UINT] = { NV50_ZETA_FORMAT_Z24_S8_UNORM,
|
||||||
B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z24_S8, 0),
|
B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z24_S8, 0),
|
||||||
SAMPLER_VIEW | DEPTH_STENCIL },
|
SAMPLER_VIEW | DEPTH_STENCIL },
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ const struct nvc0_format nvc0_format_table[PIPE_FORMAT_COUNT] =
|
||||||
B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z24_X8, 0),
|
B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z24_X8, 0),
|
||||||
SAMPLER_VIEW | DEPTH_STENCIL },
|
SAMPLER_VIEW | DEPTH_STENCIL },
|
||||||
|
|
||||||
[PIPE_FORMAT_S8_USCALED_Z24_UNORM] = { NV50_ZETA_FORMAT_S8_Z24_UNORM,
|
[PIPE_FORMAT_S8_UINT_Z24_UNORM] = { NV50_ZETA_FORMAT_S8_Z24_UNORM,
|
||||||
B_(C1, C1, C1, ONE_FLOAT, UINT, UNORM, UINT, UINT, S8_Z24, 0),
|
B_(C1, C1, C1, ONE_FLOAT, UINT, UNORM, UINT, UINT, S8_Z24, 0),
|
||||||
SAMPLER_VIEW | DEPTH_STENCIL },
|
SAMPLER_VIEW | DEPTH_STENCIL },
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ const struct nvc0_format nvc0_format_table[PIPE_FORMAT_COUNT] =
|
||||||
B_(C0, C0, C0, ONE_FLOAT, FLOAT, UINT, UINT, UINT, Z32, 0),
|
B_(C0, C0, C0, ONE_FLOAT, FLOAT, UINT, UINT, UINT, Z32, 0),
|
||||||
SAMPLER_VIEW | DEPTH_STENCIL },
|
SAMPLER_VIEW | DEPTH_STENCIL },
|
||||||
|
|
||||||
[PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED] = { NV50_ZETA_FORMAT_Z32_S8_X24_FLOAT,
|
[PIPE_FORMAT_Z32_FLOAT_S8X24_UINT] = { NV50_ZETA_FORMAT_Z32_S8_X24_FLOAT,
|
||||||
B_(C0, C0, C0, ONE_FLOAT, FLOAT, UINT, UINT, UINT, Z32_S8_X24, 0),
|
B_(C0, C0, C0, ONE_FLOAT, FLOAT, UINT, UINT, UINT, Z32_S8_X24, 0),
|
||||||
SAMPLER_VIEW | DEPTH_STENCIL },
|
SAMPLER_VIEW | DEPTH_STENCIL },
|
||||||
|
|
||||||
|
|
|
@ -75,14 +75,14 @@ nvc0_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
|
||||||
else
|
else
|
||||||
tile_flags = 0x0100;
|
tile_flags = 0x0100;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
if (compressed)
|
if (compressed)
|
||||||
tile_flags = 0x5100 + (ms << 8);
|
tile_flags = 0x5100 + (ms << 8);
|
||||||
else
|
else
|
||||||
tile_flags = 0x4600;
|
tile_flags = 0x4600;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
if (compressed)
|
if (compressed)
|
||||||
tile_flags = 0x1700 + (ms << 8);
|
tile_flags = 0x1700 + (ms << 8);
|
||||||
else
|
else
|
||||||
|
@ -94,7 +94,7 @@ nvc0_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
|
||||||
else
|
else
|
||||||
tile_flags = 0x7b00;
|
tile_flags = 0x7b00;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
if (compressed)
|
if (compressed)
|
||||||
tile_flags = 0xce00 + (ms << 8);
|
tile_flags = 0xce00 + (ms << 8);
|
||||||
else
|
else
|
||||||
|
|
|
@ -478,7 +478,7 @@ nvc0_blitctx_make_fp(struct nvc0_blitctx *blit)
|
||||||
{
|
{
|
||||||
static const uint32_t code[] = /* use nvc0dis */
|
static const uint32_t code[] = /* use nvc0dis */
|
||||||
{
|
{
|
||||||
/* 2 coords RGBA in, RGBA out, also for Z32_FLOAT(_S8X24_USCALED)
|
/* 2 coords RGBA in, RGBA out, also for Z32_FLOAT(_S8X24_UINT)
|
||||||
* NOTE:
|
* NOTE:
|
||||||
* NVC0 doesn't like tex 3d on non-3d textures, but there should
|
* NVC0 doesn't like tex 3d on non-3d textures, but there should
|
||||||
* only be 2d and 2d-array MS resources anyway.
|
* only be 2d and 2d-array MS resources anyway.
|
||||||
|
@ -581,11 +581,11 @@ nvc0_blit_zeta_to_colour_format(enum pipe_format format)
|
||||||
{
|
{
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIPE_FORMAT_Z16_UNORM: return PIPE_FORMAT_R16_UNORM;
|
case PIPE_FORMAT_Z16_UNORM: return PIPE_FORMAT_R16_UNORM;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM: return PIPE_FORMAT_R8G8B8A8_UNORM;
|
case PIPE_FORMAT_Z24X8_UNORM: return PIPE_FORMAT_R8G8B8A8_UNORM;
|
||||||
case PIPE_FORMAT_Z32_FLOAT: return PIPE_FORMAT_R32_FLOAT;
|
case PIPE_FORMAT_Z32_FLOAT: return PIPE_FORMAT_R32_FLOAT;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED: return PIPE_FORMAT_R32G32_FLOAT;
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT: return PIPE_FORMAT_R32G32_FLOAT;
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
return PIPE_FORMAT_NONE;
|
return PIPE_FORMAT_NONE;
|
||||||
|
@ -600,14 +600,14 @@ nvc0_blitctx_get_color_mask_and_fp(struct nvc0_blitctx *blit,
|
||||||
|
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
blit->fp_offset = 0x180;
|
blit->fp_offset = 0x180;
|
||||||
if (mask & PIPE_MASK_Z)
|
if (mask & PIPE_MASK_Z)
|
||||||
blit->color_mask |= 0x0111;
|
blit->color_mask |= 0x0111;
|
||||||
if (mask & PIPE_MASK_S)
|
if (mask & PIPE_MASK_S)
|
||||||
blit->color_mask |= 0x1000;
|
blit->color_mask |= 0x1000;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
blit->fp_offset = 0x80;
|
blit->fp_offset = 0x80;
|
||||||
if (mask & PIPE_MASK_Z)
|
if (mask & PIPE_MASK_Z)
|
||||||
blit->color_mask |= 0x1110;
|
blit->color_mask |= 0x1110;
|
||||||
|
|
|
@ -345,7 +345,7 @@ nvfx_texture_formats[PIPE_FORMAT_COUNT] = {
|
||||||
_(DXT5_SRGBA, DXT5, T, T, T, T, X, Y, Z, W, UNORM, SRGB),
|
_(DXT5_SRGBA, DXT5, T, T, T, T, X, Y, Z, W, UNORM, SRGB),
|
||||||
|
|
||||||
__(Z16_UNORM, A8L8, Z16, T, T, T, 1, W, W, W, W, UNORM, 0),
|
__(Z16_UNORM, A8L8, Z16, T, T, T, 1, W, W, W, W, UNORM, 0),
|
||||||
__(S8_USCALED_Z24_UNORM,HILO16,Z24, T, T, T, 1, W, W, W, W, UNORM, 0),
|
__(S8_UINT_Z24_UNORM,HILO16,Z24, T, T, T, 1, W, W, W, W, UNORM, 0),
|
||||||
__(X8Z24_UNORM, HILO16,Z24, T, T, T, 1, W, W, W, W, UNORM, 0),
|
__(X8Z24_UNORM, HILO16,Z24, T, T, T, 1, W, W, W, W, UNORM, 0),
|
||||||
|
|
||||||
_(R16_UNORM, A16, T, 0, 0, 1, X, X, X, X, UNORM, 0),
|
_(R16_UNORM, A16, T, 0, 0, 1, X, X, X, X, UNORM, 0),
|
||||||
|
|
|
@ -269,7 +269,7 @@ nvfx_screen_is_format_supported(struct pipe_screen *pscreen,
|
||||||
|
|
||||||
if (bind & PIPE_BIND_DEPTH_STENCIL) {
|
if (bind & PIPE_BIND_DEPTH_STENCIL) {
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -171,7 +171,7 @@ nvfx_framebuffer_validate(struct nvfx_context *nvfx, unsigned prepare_result)
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
rt_format |= NV30_3D_RT_FORMAT_ZETA_Z16;
|
rt_format |= NV30_3D_RT_FORMAT_ZETA_Z16;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case 0:
|
case 0:
|
||||||
rt_format |= NV30_3D_RT_FORMAT_ZETA_Z24S8;
|
rt_format |= NV30_3D_RT_FORMAT_ZETA_Z24S8;
|
||||||
|
|
|
@ -155,7 +155,7 @@ static uint32_t r300_depth_clear_value(enum pipe_format format,
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
return util_pack_z(format, depth);
|
return util_pack_z(format, depth);
|
||||||
|
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
return util_pack_z_stencil(format, depth, stencil);
|
return util_pack_z_stencil(format, depth, stencil);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -615,7 +615,7 @@ static uint32_t r300_get_border_color(enum pipe_format format,
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
return util_pack_z(PIPE_FORMAT_Z16_UNORM, border[0]);
|
return util_pack_z(PIPE_FORMAT_Z16_UNORM, border[0]);
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
if (is_r500) {
|
if (is_r500) {
|
||||||
return util_pack_z(PIPE_FORMAT_X8Z24_UNORM, border[0]);
|
return util_pack_z(PIPE_FORMAT_X8Z24_UNORM, border[0]);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -129,7 +129,7 @@ uint32_t r300_translate_texformat(enum pipe_format format,
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
return R300_TX_FORMAT_X16;
|
return R300_TX_FORMAT_X16;
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
if (is_r500)
|
if (is_r500)
|
||||||
return R500_TX_FORMAT_Y8X24;
|
return R500_TX_FORMAT_Y8X24;
|
||||||
else
|
else
|
||||||
|
@ -374,7 +374,7 @@ uint32_t r500_tx_format_msb_bit(enum pipe_format format)
|
||||||
case PIPE_FORMAT_LATC1_UNORM:
|
case PIPE_FORMAT_LATC1_UNORM:
|
||||||
case PIPE_FORMAT_LATC1_SNORM:
|
case PIPE_FORMAT_LATC1_SNORM:
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
return R500_TXFORMAT_MSB;
|
return R500_TXFORMAT_MSB;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -492,7 +492,7 @@ static uint32_t r300_translate_zsformat(enum pipe_format format)
|
||||||
/* 24-bit depth, ignored stencil */
|
/* 24-bit depth, ignored stencil */
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
/* 24-bit depth, 8-bit stencil */
|
/* 24-bit depth, 8-bit stencil */
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
return R300_DEPTHFORMAT_24BIT_INT_Z_8BIT_STENCIL;
|
return R300_DEPTHFORMAT_24BIT_INT_Z_8BIT_STENCIL;
|
||||||
default:
|
default:
|
||||||
return ~0; /* Unsupported. */
|
return ~0; /* Unsupported. */
|
||||||
|
|
|
@ -262,10 +262,10 @@ static uint32_t r600_translate_dbformat(enum pipe_format format)
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
return V_028040_Z_16;
|
return V_028040_Z_16;
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
return V_028040_Z_24;
|
return V_028040_Z_24;
|
||||||
case PIPE_FORMAT_Z32_FLOAT:
|
case PIPE_FORMAT_Z32_FLOAT:
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
return V_028040_Z_32_FLOAT;
|
return V_028040_Z_32_FLOAT;
|
||||||
default:
|
default:
|
||||||
return ~0U;
|
return ~0U;
|
||||||
|
@ -355,11 +355,11 @@ static uint32_t r600_translate_colorswap(enum pipe_format format)
|
||||||
return V_028C70_SWAP_STD_REV;
|
return V_028C70_SWAP_STD_REV;
|
||||||
|
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
return V_028C70_SWAP_STD;
|
return V_028C70_SWAP_STD;
|
||||||
|
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
return V_028C70_SWAP_STD;
|
return V_028C70_SWAP_STD;
|
||||||
|
|
||||||
case PIPE_FORMAT_R10G10B10A2_UNORM:
|
case PIPE_FORMAT_R10G10B10A2_UNORM:
|
||||||
|
@ -392,7 +392,7 @@ static uint32_t r600_translate_colorswap(enum pipe_format format)
|
||||||
case PIPE_FORMAT_R16G16B16A16_UINT:
|
case PIPE_FORMAT_R16G16B16A16_UINT:
|
||||||
case PIPE_FORMAT_R16G16B16A16_SINT:
|
case PIPE_FORMAT_R16G16B16A16_SINT:
|
||||||
case PIPE_FORMAT_R16G16B16A16_FLOAT:
|
case PIPE_FORMAT_R16G16B16A16_FLOAT:
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
|
|
||||||
/* 128-bit buffers. */
|
/* 128-bit buffers. */
|
||||||
case PIPE_FORMAT_R32G32B32A32_FLOAT:
|
case PIPE_FORMAT_R32G32B32A32_FLOAT:
|
||||||
|
@ -494,14 +494,14 @@ static uint32_t r600_translate_colorformat(enum pipe_format format)
|
||||||
return V_028C70_COLOR_2_10_10_10;
|
return V_028C70_COLOR_2_10_10_10;
|
||||||
|
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
return V_028C70_COLOR_8_24;
|
return V_028C70_COLOR_8_24;
|
||||||
|
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
return V_028C70_COLOR_24_8;
|
return V_028C70_COLOR_24_8;
|
||||||
|
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
return V_028C70_COLOR_X24_8_32_FLOAT;
|
return V_028C70_COLOR_X24_8_32_FLOAT;
|
||||||
|
|
||||||
case PIPE_FORMAT_R32_FLOAT:
|
case PIPE_FORMAT_R32_FLOAT:
|
||||||
|
@ -2197,12 +2197,12 @@ void evergreen_polygon_offset_update(struct r600_pipe_context *rctx)
|
||||||
|
|
||||||
switch (rctx->framebuffer.zsbuf->texture->format) {
|
switch (rctx->framebuffer.zsbuf->texture->format) {
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
depth = -24;
|
depth = -24;
|
||||||
offset_units *= 2.0f;
|
offset_units *= 2.0f;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT:
|
case PIPE_FORMAT_Z32_FLOAT:
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
depth = -23;
|
depth = -23;
|
||||||
offset_units *= 1.0f;
|
offset_units *= 1.0f;
|
||||||
offset_db_fmt_cntl |= S_028B78_POLY_OFFSET_DB_IS_FLOAT_FMT(1);
|
offset_db_fmt_cntl |= S_028B78_POLY_OFFSET_DB_IS_FLOAT_FMT(1);
|
||||||
|
|
|
@ -261,11 +261,11 @@ static uint32_t r600_translate_dbformat(enum pipe_format format)
|
||||||
return V_028010_DEPTH_16;
|
return V_028010_DEPTH_16;
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
return V_028010_DEPTH_X8_24;
|
return V_028010_DEPTH_X8_24;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
return V_028010_DEPTH_8_24;
|
return V_028010_DEPTH_8_24;
|
||||||
case PIPE_FORMAT_Z32_FLOAT:
|
case PIPE_FORMAT_Z32_FLOAT:
|
||||||
return V_028010_DEPTH_32_FLOAT;
|
return V_028010_DEPTH_32_FLOAT;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
return V_028010_DEPTH_X24_8_32_FLOAT;
|
return V_028010_DEPTH_X24_8_32_FLOAT;
|
||||||
default:
|
default:
|
||||||
return ~0U;
|
return ~0U;
|
||||||
|
@ -356,11 +356,11 @@ static uint32_t r600_translate_colorswap(enum pipe_format format)
|
||||||
return V_0280A0_SWAP_STD_REV;
|
return V_0280A0_SWAP_STD_REV;
|
||||||
|
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
return V_0280A0_SWAP_STD;
|
return V_0280A0_SWAP_STD;
|
||||||
|
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
return V_0280A0_SWAP_STD;
|
return V_0280A0_SWAP_STD;
|
||||||
|
|
||||||
case PIPE_FORMAT_R10G10B10A2_UNORM:
|
case PIPE_FORMAT_R10G10B10A2_UNORM:
|
||||||
|
@ -393,7 +393,7 @@ static uint32_t r600_translate_colorswap(enum pipe_format format)
|
||||||
case PIPE_FORMAT_R16G16B16A16_UINT:
|
case PIPE_FORMAT_R16G16B16A16_UINT:
|
||||||
case PIPE_FORMAT_R16G16B16A16_SINT:
|
case PIPE_FORMAT_R16G16B16A16_SINT:
|
||||||
case PIPE_FORMAT_R16G16B16A16_FLOAT:
|
case PIPE_FORMAT_R16G16B16A16_FLOAT:
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
|
|
||||||
/* 128-bit buffers. */
|
/* 128-bit buffers. */
|
||||||
case PIPE_FORMAT_R32G32B32A32_FLOAT:
|
case PIPE_FORMAT_R32G32B32A32_FLOAT:
|
||||||
|
@ -495,14 +495,14 @@ static uint32_t r600_translate_colorformat(enum pipe_format format)
|
||||||
return V_0280A0_COLOR_2_10_10_10;
|
return V_0280A0_COLOR_2_10_10_10;
|
||||||
|
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
return V_0280A0_COLOR_8_24;
|
return V_0280A0_COLOR_8_24;
|
||||||
|
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
return V_0280A0_COLOR_24_8;
|
return V_0280A0_COLOR_24_8;
|
||||||
|
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
return V_0280A0_COLOR_X24_8_32_FLOAT;
|
return V_0280A0_COLOR_X24_8_32_FLOAT;
|
||||||
|
|
||||||
case PIPE_FORMAT_R32_FLOAT:
|
case PIPE_FORMAT_R32_FLOAT:
|
||||||
|
@ -703,12 +703,12 @@ void r600_polygon_offset_update(struct r600_pipe_context *rctx)
|
||||||
|
|
||||||
switch (rctx->framebuffer.zsbuf->texture->format) {
|
switch (rctx->framebuffer.zsbuf->texture->format) {
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
depth = -24;
|
depth = -24;
|
||||||
offset_units *= 2.0f;
|
offset_units *= 2.0f;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT:
|
case PIPE_FORMAT_Z32_FLOAT:
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
depth = -23;
|
depth = -23;
|
||||||
offset_units *= 1.0f;
|
offset_units *= 1.0f;
|
||||||
offset_db_fmt_cntl |= S_028DF8_POLY_OFFSET_DB_IS_FLOAT_FMT(1);
|
offset_db_fmt_cntl |= S_028DF8_POLY_OFFSET_DB_IS_FLOAT_FMT(1);
|
||||||
|
|
|
@ -401,13 +401,13 @@ r600_texture_create_object(struct pipe_screen *screen,
|
||||||
unsigned stencil_pitch_override = 0;
|
unsigned stencil_pitch_override = 0;
|
||||||
|
|
||||||
switch (base->format) {
|
switch (base->format) {
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
rtex->real_format = PIPE_FORMAT_Z24X8_UNORM;
|
rtex->real_format = PIPE_FORMAT_Z24X8_UNORM;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
rtex->real_format = PIPE_FORMAT_X8Z24_UNORM;
|
rtex->real_format = PIPE_FORMAT_X8Z24_UNORM;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
rtex->real_format = PIPE_FORMAT_Z32_FLOAT;
|
rtex->real_format = PIPE_FORMAT_Z32_FLOAT;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -418,14 +418,14 @@ r600_texture_create_object(struct pipe_screen *screen,
|
||||||
|
|
||||||
/* Divide the pitch in bytes by 4 for stencil, because it has a smaller pixel size. */
|
/* Divide the pitch in bytes by 4 for stencil, because it has a smaller pixel size. */
|
||||||
if (pitch_in_bytes_override) {
|
if (pitch_in_bytes_override) {
|
||||||
assert(base->format == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
assert(base->format == PIPE_FORMAT_Z24_UNORM_S8_UINT ||
|
||||||
base->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM);
|
base->format == PIPE_FORMAT_S8_UINT_Z24_UNORM);
|
||||||
stencil_pitch_override = pitch_in_bytes_override / 4;
|
stencil_pitch_override = pitch_in_bytes_override / 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate the stencil buffer. */
|
/* Allocate the stencil buffer. */
|
||||||
stencil = *base;
|
stencil = *base;
|
||||||
stencil.format = PIPE_FORMAT_S8_USCALED;
|
stencil.format = PIPE_FORMAT_S8_UINT;
|
||||||
rtex->stencil = r600_texture_create_object(screen, &stencil, array_mode,
|
rtex->stencil = r600_texture_create_object(screen, &stencil, array_mode,
|
||||||
stencil_pitch_override,
|
stencil_pitch_override,
|
||||||
max_buffer_size, NULL, FALSE);
|
max_buffer_size, NULL, FALSE);
|
||||||
|
@ -882,26 +882,26 @@ uint32_t r600_translate_texformat(struct pipe_screen *screen,
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
result = FMT_16;
|
result = FMT_16;
|
||||||
goto out_word4;
|
goto out_word4;
|
||||||
case PIPE_FORMAT_X24S8_USCALED:
|
case PIPE_FORMAT_X24S8_UINT:
|
||||||
word4 |= S_038010_NUM_FORMAT_ALL(V_038010_SQ_NUM_FORMAT_INT);
|
word4 |= S_038010_NUM_FORMAT_ALL(V_038010_SQ_NUM_FORMAT_INT);
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
result = FMT_8_24;
|
result = FMT_8_24;
|
||||||
goto out_word4;
|
goto out_word4;
|
||||||
case PIPE_FORMAT_S8X24_USCALED:
|
case PIPE_FORMAT_S8X24_UINT:
|
||||||
word4 |= S_038010_NUM_FORMAT_ALL(V_038010_SQ_NUM_FORMAT_INT);
|
word4 |= S_038010_NUM_FORMAT_ALL(V_038010_SQ_NUM_FORMAT_INT);
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
result = FMT_24_8;
|
result = FMT_24_8;
|
||||||
goto out_word4;
|
goto out_word4;
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
result = FMT_8;
|
result = FMT_8;
|
||||||
word4 |= S_038010_NUM_FORMAT_ALL(V_038010_SQ_NUM_FORMAT_INT);
|
word4 |= S_038010_NUM_FORMAT_ALL(V_038010_SQ_NUM_FORMAT_INT);
|
||||||
goto out_word4;
|
goto out_word4;
|
||||||
case PIPE_FORMAT_Z32_FLOAT:
|
case PIPE_FORMAT_Z32_FLOAT:
|
||||||
result = FMT_32_FLOAT;
|
result = FMT_32_FLOAT;
|
||||||
goto out_word4;
|
goto out_word4;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
result = FMT_X24_8_32_FLOAT;
|
result = FMT_X24_8_32_FLOAT;
|
||||||
goto out_word4;
|
goto out_word4;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -77,7 +77,7 @@ get_depth_stencil_values( struct depth_data *data,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
for (j = 0; j < QUAD_SIZE; j++) {
|
for (j = 0; j < QUAD_SIZE; j++) {
|
||||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||||
|
@ -86,7 +86,7 @@ get_depth_stencil_values( struct depth_data *data,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
for (j = 0; j < QUAD_SIZE; j++) {
|
for (j = 0; j < QUAD_SIZE; j++) {
|
||||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||||
|
@ -94,7 +94,7 @@ get_depth_stencil_values( struct depth_data *data,
|
||||||
data->stencilVals[j] = tile->data.depth32[y][x] & 0xff;
|
data->stencilVals[j] = tile->data.depth32[y][x] & 0xff;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
for (j = 0; j < QUAD_SIZE; j++) {
|
for (j = 0; j < QUAD_SIZE; j++) {
|
||||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||||
|
@ -163,7 +163,7 @@ convert_quad_depth( struct depth_data *data,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
{
|
{
|
||||||
float scale = (float) ((1 << 24) - 1);
|
float scale = (float) ((1 << 24) - 1);
|
||||||
|
|
||||||
|
@ -173,7 +173,7 @@ convert_quad_depth( struct depth_data *data,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
{
|
{
|
||||||
float scale = (float) ((1 << 24) - 1);
|
float scale = (float) ((1 << 24) - 1);
|
||||||
|
|
||||||
|
@ -203,10 +203,10 @@ convert_quad_stencil( struct depth_data *data,
|
||||||
*/
|
*/
|
||||||
switch (data->format) {
|
switch (data->format) {
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
for (j = 0; j < QUAD_SIZE; j++) {
|
for (j = 0; j < QUAD_SIZE; j++) {
|
||||||
data->shader_stencil_refs[j] = ((unsigned)(quad->output.stencil[j]));
|
data->shader_stencil_refs[j] = ((unsigned)(quad->output.stencil[j]));
|
||||||
}
|
}
|
||||||
|
@ -244,14 +244,14 @@ write_depth_stencil_values( struct depth_data *data,
|
||||||
tile->data.depth32[y][x] = data->bzzzz[j];
|
tile->data.depth32[y][x] = data->bzzzz[j];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
for (j = 0; j < QUAD_SIZE; j++) {
|
for (j = 0; j < QUAD_SIZE; j++) {
|
||||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||||
tile->data.depth32[y][x] = (data->stencilVals[j] << 24) | data->bzzzz[j];
|
tile->data.depth32[y][x] = (data->stencilVals[j] << 24) | data->bzzzz[j];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
for (j = 0; j < QUAD_SIZE; j++) {
|
for (j = 0; j < QUAD_SIZE; j++) {
|
||||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||||
|
@ -265,7 +265,7 @@ write_depth_stencil_values( struct depth_data *data,
|
||||||
tile->data.depth32[y][x] = data->bzzzz[j] << 8;
|
tile->data.depth32[y][x] = data->bzzzz[j] << 8;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
for (j = 0; j < QUAD_SIZE; j++) {
|
for (j = 0; j < QUAD_SIZE; j++) {
|
||||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||||
|
|
|
@ -68,7 +68,7 @@ svga_translate_format(struct svga_screen *ss,
|
||||||
|
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
return bind & PIPE_BIND_SAMPLER_VIEW ? ss->depth.z16 : SVGA3D_Z_D16;
|
return bind & PIPE_BIND_SAMPLER_VIEW ? ss->depth.z16 : SVGA3D_Z_D16;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
return bind & PIPE_BIND_SAMPLER_VIEW ? ss->depth.s8z24 : SVGA3D_Z_D24S8;
|
return bind & PIPE_BIND_SAMPLER_VIEW ? ss->depth.s8z24 : SVGA3D_Z_D24S8;
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
return bind & PIPE_BIND_SAMPLER_VIEW ? ss->depth.x8z24 : SVGA3D_Z_D24X8;
|
return bind & PIPE_BIND_SAMPLER_VIEW ? ss->depth.x8z24 : SVGA3D_Z_D24X8;
|
||||||
|
|
|
@ -71,7 +71,7 @@ try_clear(struct svga_context *svga,
|
||||||
if (buffers & PIPE_CLEAR_DEPTH)
|
if (buffers & PIPE_CLEAR_DEPTH)
|
||||||
flags |= SVGA3D_CLEAR_DEPTH;
|
flags |= SVGA3D_CLEAR_DEPTH;
|
||||||
|
|
||||||
if ((svga->curr.framebuffer.zsbuf->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM) &&
|
if ((svga->curr.framebuffer.zsbuf->format == PIPE_FORMAT_S8_UINT_Z24_UNORM) &&
|
||||||
(buffers & PIPE_CLEAR_STENCIL))
|
(buffers & PIPE_CLEAR_STENCIL))
|
||||||
flags |= SVGA3D_CLEAR_STENCIL;
|
flags |= SVGA3D_CLEAR_STENCIL;
|
||||||
|
|
||||||
|
|
|
@ -118,9 +118,9 @@ static void svga_set_framebuffer_state(struct pipe_context *pipe,
|
||||||
case PIPE_FORMAT_Z16_UNORM:
|
case PIPE_FORMAT_Z16_UNORM:
|
||||||
svga->curr.depthscale = 1.0f / DEPTH_BIAS_SCALE_FACTOR_D16;
|
svga->curr.depthscale = 1.0f / DEPTH_BIAS_SCALE_FACTOR_D16;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
svga->curr.depthscale = 1.0f / DEPTH_BIAS_SCALE_FACTOR_D24S8;
|
svga->curr.depthscale = 1.0f / DEPTH_BIAS_SCALE_FACTOR_D24S8;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -74,7 +74,7 @@ static int emit_framebuffer( struct svga_context *svga,
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (curr->zsbuf &&
|
if (curr->zsbuf &&
|
||||||
curr->zsbuf->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM) {
|
curr->zsbuf->format == PIPE_FORMAT_S8_UINT_Z24_UNORM) {
|
||||||
ret = SVGA3D_SetRenderTarget(svga->swc, SVGA3D_RT_STENCIL, curr->zsbuf);
|
ret = SVGA3D_SetRenderTarget(svga->swc, SVGA3D_RT_STENCIL, curr->zsbuf);
|
||||||
if (ret != PIPE_OK)
|
if (ret != PIPE_OK)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -127,7 +127,7 @@ svga_reemit_framebuffer_bindings(struct svga_context *svga)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hw->zsbuf &&
|
if (hw->zsbuf &&
|
||||||
hw->zsbuf->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM) {
|
hw->zsbuf->format == PIPE_FORMAT_S8_UINT_Z24_UNORM) {
|
||||||
ret = SVGA3D_SetRenderTarget(svga->swc, SVGA3D_RT_STENCIL, hw->zsbuf);
|
ret = SVGA3D_SetRenderTarget(svga->swc, SVGA3D_RT_STENCIL, hw->zsbuf);
|
||||||
if (ret != PIPE_OK) {
|
if (ret != PIPE_OK) {
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -71,11 +71,11 @@ enum pipe_format {
|
||||||
PIPE_FORMAT_Z16_UNORM = 16,
|
PIPE_FORMAT_Z16_UNORM = 16,
|
||||||
PIPE_FORMAT_Z32_UNORM = 17,
|
PIPE_FORMAT_Z32_UNORM = 17,
|
||||||
PIPE_FORMAT_Z32_FLOAT = 18,
|
PIPE_FORMAT_Z32_FLOAT = 18,
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED = 19,
|
PIPE_FORMAT_Z24_UNORM_S8_UINT = 19,
|
||||||
PIPE_FORMAT_S8_USCALED_Z24_UNORM = 20,
|
PIPE_FORMAT_S8_UINT_Z24_UNORM = 20,
|
||||||
PIPE_FORMAT_Z24X8_UNORM = 21,
|
PIPE_FORMAT_Z24X8_UNORM = 21,
|
||||||
PIPE_FORMAT_X8Z24_UNORM = 22,
|
PIPE_FORMAT_X8Z24_UNORM = 22,
|
||||||
PIPE_FORMAT_S8_USCALED = 23, /**< ubyte stencil */
|
PIPE_FORMAT_S8_UINT = 23, /**< ubyte stencil */
|
||||||
PIPE_FORMAT_R64_FLOAT = 24,
|
PIPE_FORMAT_R64_FLOAT = 24,
|
||||||
PIPE_FORMAT_R64G64_FLOAT = 25,
|
PIPE_FORMAT_R64G64_FLOAT = 25,
|
||||||
PIPE_FORMAT_R64G64B64_FLOAT = 26,
|
PIPE_FORMAT_R64G64B64_FLOAT = 26,
|
||||||
|
@ -185,7 +185,7 @@ enum pipe_format {
|
||||||
PIPE_FORMAT_R10G10B10A2_USCALED = 123,
|
PIPE_FORMAT_R10G10B10A2_USCALED = 123,
|
||||||
PIPE_FORMAT_R11G11B10_FLOAT = 124,
|
PIPE_FORMAT_R11G11B10_FLOAT = 124,
|
||||||
PIPE_FORMAT_R9G9B9E5_FLOAT = 125,
|
PIPE_FORMAT_R9G9B9E5_FLOAT = 125,
|
||||||
PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED = 126,
|
PIPE_FORMAT_Z32_FLOAT_S8X24_UINT = 126,
|
||||||
PIPE_FORMAT_R1_UNORM = 127,
|
PIPE_FORMAT_R1_UNORM = 127,
|
||||||
PIPE_FORMAT_R10G10B10X2_USCALED = 128,
|
PIPE_FORMAT_R10G10B10X2_USCALED = 128,
|
||||||
PIPE_FORMAT_R10G10B10X2_SNORM = 129,
|
PIPE_FORMAT_R10G10B10X2_SNORM = 129,
|
||||||
|
@ -197,9 +197,9 @@ enum pipe_format {
|
||||||
PIPE_FORMAT_B4G4R4X4_UNORM = 135,
|
PIPE_FORMAT_B4G4R4X4_UNORM = 135,
|
||||||
|
|
||||||
/* some stencil samplers formats */
|
/* some stencil samplers formats */
|
||||||
PIPE_FORMAT_X24S8_USCALED = 136,
|
PIPE_FORMAT_X24S8_UINT = 136,
|
||||||
PIPE_FORMAT_S8X24_USCALED = 137,
|
PIPE_FORMAT_S8X24_UINT = 137,
|
||||||
PIPE_FORMAT_X32_S8X24_USCALED = 138,
|
PIPE_FORMAT_X32_S8X24_UINT = 138,
|
||||||
|
|
||||||
PIPE_FORMAT_B2G3R3_UNORM = 139,
|
PIPE_FORMAT_B2G3R3_UNORM = 139,
|
||||||
PIPE_FORMAT_L16A16_UNORM = 140,
|
PIPE_FORMAT_L16A16_UNORM = 140,
|
||||||
|
|
|
@ -50,10 +50,10 @@ pipe_format dxgi_to_pipe_format[DXGI_FORMAT_COUNT] =
|
||||||
PIPE_FORMAT_R32G32_FLOAT,
|
PIPE_FORMAT_R32G32_FLOAT,
|
||||||
PIPE_FORMAT_R32G32_USCALED,
|
PIPE_FORMAT_R32G32_USCALED,
|
||||||
PIPE_FORMAT_R32G32_SSCALED,
|
PIPE_FORMAT_R32G32_SSCALED,
|
||||||
PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED, /* PIPE_FORMAT_R32G8X24_FLOAT_TYPELESS */
|
PIPE_FORMAT_Z32_FLOAT_S8X24_UINT, /* PIPE_FORMAT_R32G8X24_FLOAT_TYPELESS */
|
||||||
PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED,
|
PIPE_FORMAT_Z32_FLOAT_S8X24_UINT,
|
||||||
PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED, /* PIPE_FORMAT_R32_FLOAT_X8X24_TYPELESS */
|
PIPE_FORMAT_Z32_FLOAT_S8X24_UINT, /* PIPE_FORMAT_R32_FLOAT_X8X24_TYPELESS */
|
||||||
PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED, /* PIPE_FORMAT_X32_TYPELESS_G8X24_USCALED */
|
PIPE_FORMAT_Z32_FLOAT_S8X24_UINT, /* PIPE_FORMAT_X32_TYPELESS_G8X24_UINT */
|
||||||
PIPE_FORMAT_R10G10B10A2_UNORM, /* TYPELESS */
|
PIPE_FORMAT_R10G10B10A2_UNORM, /* TYPELESS */
|
||||||
PIPE_FORMAT_R10G10B10A2_UNORM,
|
PIPE_FORMAT_R10G10B10A2_UNORM,
|
||||||
PIPE_FORMAT_R10G10B10A2_USCALED,
|
PIPE_FORMAT_R10G10B10A2_USCALED,
|
||||||
|
@ -75,10 +75,10 @@ pipe_format dxgi_to_pipe_format[DXGI_FORMAT_COUNT] =
|
||||||
PIPE_FORMAT_R32_FLOAT,
|
PIPE_FORMAT_R32_FLOAT,
|
||||||
PIPE_FORMAT_R32_USCALED,
|
PIPE_FORMAT_R32_USCALED,
|
||||||
PIPE_FORMAT_R32_SSCALED,
|
PIPE_FORMAT_R32_SSCALED,
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED, /* PIPE_FORMAT_R24G8_TYPELESS */
|
PIPE_FORMAT_Z24_UNORM_S8_UINT, /* PIPE_FORMAT_R24G8_TYPELESS */
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
PIPE_FORMAT_Z24_UNORM_S8_UINT,
|
||||||
PIPE_FORMAT_Z24X8_UNORM, /* PIPE_FORMAT_R24_UNORM_X8_TYPELESS */
|
PIPE_FORMAT_Z24X8_UNORM, /* PIPE_FORMAT_R24_UNORM_X8_TYPELESS */
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED, /* PIPE_FORMAT_X24_TYPELESS_G8_USCALED */
|
PIPE_FORMAT_Z24_UNORM_S8_UINT, /* PIPE_FORMAT_X24_TYPELESS_G8_UINT */
|
||||||
PIPE_FORMAT_R8G8_UNORM, /* TYPELESS */
|
PIPE_FORMAT_R8G8_UNORM, /* TYPELESS */
|
||||||
PIPE_FORMAT_R8G8_UNORM,
|
PIPE_FORMAT_R8G8_UNORM,
|
||||||
PIPE_FORMAT_R8G8_USCALED,
|
PIPE_FORMAT_R8G8_USCALED,
|
||||||
|
|
|
@ -95,10 +95,10 @@ dri_fill_in_modes(struct dri_screen *screen,
|
||||||
pf_z24x8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_X8Z24_UNORM,
|
pf_z24x8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_X8Z24_UNORM,
|
||||||
PIPE_TEXTURE_2D, 0,
|
PIPE_TEXTURE_2D, 0,
|
||||||
PIPE_BIND_DEPTH_STENCIL);
|
PIPE_BIND_DEPTH_STENCIL);
|
||||||
pf_s8z24 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
pf_s8z24 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z24_UNORM_S8_UINT,
|
||||||
PIPE_TEXTURE_2D, 0,
|
PIPE_TEXTURE_2D, 0,
|
||||||
PIPE_BIND_DEPTH_STENCIL);
|
PIPE_BIND_DEPTH_STENCIL);
|
||||||
pf_z24s8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_S8_USCALED_Z24_UNORM,
|
pf_z24s8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_S8_UINT_Z24_UNORM,
|
||||||
PIPE_TEXTURE_2D, 0,
|
PIPE_TEXTURE_2D, 0,
|
||||||
PIPE_BIND_DEPTH_STENCIL);
|
PIPE_BIND_DEPTH_STENCIL);
|
||||||
pf_a8r8g8b8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_B8G8R8A8_UNORM,
|
pf_a8r8g8b8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||||
|
@ -270,8 +270,8 @@ dri_fill_st_visual(struct st_visual *stvis, struct dri_screen *screen,
|
||||||
PIPE_FORMAT_X8Z24_UNORM;
|
PIPE_FORMAT_X8Z24_UNORM;
|
||||||
} else {
|
} else {
|
||||||
stvis->depth_stencil_format = (screen->sd_depth_bits_last) ?
|
stvis->depth_stencil_format = (screen->sd_depth_bits_last) ?
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
PIPE_FORMAT_S8_UINT_Z24_UNORM;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 32:
|
case 32:
|
||||||
|
|
|
@ -386,7 +386,7 @@ egl_g3d_fill_depth_stencil_formats(_EGLDisplay *dpy,
|
||||||
const EGLint candidates[] = {
|
const EGLint candidates[] = {
|
||||||
1, PIPE_FORMAT_Z16_UNORM,
|
1, PIPE_FORMAT_Z16_UNORM,
|
||||||
1, PIPE_FORMAT_Z32_UNORM,
|
1, PIPE_FORMAT_Z32_UNORM,
|
||||||
2, PIPE_FORMAT_Z24_UNORM_S8_USCALED, PIPE_FORMAT_S8_USCALED_Z24_UNORM,
|
2, PIPE_FORMAT_Z24_UNORM_S8_UINT, PIPE_FORMAT_S8_UINT_Z24_UNORM,
|
||||||
2, PIPE_FORMAT_Z24X8_UNORM, PIPE_FORMAT_X8Z24_UNORM,
|
2, PIPE_FORMAT_Z24X8_UNORM, PIPE_FORMAT_X8Z24_UNORM,
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
|
@ -391,8 +391,8 @@ choose_depth_stencil_format(XMesaDisplay xmdpy, int depth, int stencil)
|
||||||
formats[count++] = PIPE_FORMAT_Z24X8_UNORM;
|
formats[count++] = PIPE_FORMAT_Z24X8_UNORM;
|
||||||
}
|
}
|
||||||
if (depth <= 24 && stencil <= 8) {
|
if (depth <= 24 && stencil <= 8) {
|
||||||
formats[count++] = PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
formats[count++] = PIPE_FORMAT_S8_UINT_Z24_UNORM;
|
||||||
formats[count++] = PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
formats[count++] = PIPE_FORMAT_Z24_UNORM_S8_UINT;
|
||||||
}
|
}
|
||||||
if (depth <= 32 && stencil == 0) {
|
if (depth <= 32 && stencil == 0) {
|
||||||
formats[count++] = PIPE_FORMAT_Z32_UNORM;
|
formats[count++] = PIPE_FORMAT_Z32_UNORM;
|
||||||
|
|
|
@ -61,8 +61,8 @@ choose_depth_stencil_format(struct vg_context *ctx)
|
||||||
{
|
{
|
||||||
struct pipe_screen *screen = ctx->pipe->screen;
|
struct pipe_screen *screen = ctx->pipe->screen;
|
||||||
enum pipe_format formats[] = {
|
enum pipe_format formats[] = {
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
PIPE_FORMAT_Z24_UNORM_S8_UINT,
|
||||||
PIPE_FORMAT_S8_USCALED_Z24_UNORM,
|
PIPE_FORMAT_S8_UINT_Z24_UNORM,
|
||||||
PIPE_FORMAT_NONE
|
PIPE_FORMAT_NONE
|
||||||
};
|
};
|
||||||
enum pipe_format *fmt;
|
enum pipe_format *fmt;
|
||||||
|
|
|
@ -94,8 +94,8 @@ stw_pf_depth_stencil[] = {
|
||||||
{ PIPE_FORMAT_Z24X8_UNORM, {24, 0} },
|
{ PIPE_FORMAT_Z24X8_UNORM, {24, 0} },
|
||||||
{ PIPE_FORMAT_Z16_UNORM, {16, 0} },
|
{ PIPE_FORMAT_Z16_UNORM, {16, 0} },
|
||||||
/* combined depth-stencil */
|
/* combined depth-stencil */
|
||||||
{ PIPE_FORMAT_Z24_UNORM_S8_USCALED, {24, 8} },
|
{ PIPE_FORMAT_Z24_UNORM_S8_UINT, {24, 8} },
|
||||||
{ PIPE_FORMAT_S8_USCALED_Z24_UNORM, {24, 8} }
|
{ PIPE_FORMAT_S8_UINT_Z24_UNORM, {24, 8} }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -118,10 +118,10 @@ xa_get_pipe_format(enum xa_formats xa_format)
|
||||||
fdesc.format = PIPE_FORMAT_X8Z24_UNORM;
|
fdesc.format = PIPE_FORMAT_X8Z24_UNORM;
|
||||||
break;
|
break;
|
||||||
case xa_format_s8z24:
|
case xa_format_s8z24:
|
||||||
fdesc.format = PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
fdesc.format = PIPE_FORMAT_Z24_UNORM_S8_UINT;
|
||||||
break;
|
break;
|
||||||
case xa_format_z24s8:
|
case xa_format_z24s8:
|
||||||
fdesc.format = PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
fdesc.format = PIPE_FORMAT_S8_UINT_Z24_UNORM;
|
||||||
break;
|
break;
|
||||||
case xa_format_yuv8:
|
case xa_format_yuv8:
|
||||||
fdesc.format = PIPE_FORMAT_L8_UNORM;
|
fdesc.format = PIPE_FORMAT_L8_UNORM;
|
||||||
|
|
|
@ -124,7 +124,7 @@ dri2_do_create_buffer(DrawablePtr pDraw, DRI2BufferPtr buffer, unsigned int form
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
template.format = ms->ds_depth_bits_last ?
|
template.format = ms->ds_depth_bits_last ?
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED : PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
PIPE_FORMAT_Z24_UNORM_S8_UINT : PIPE_FORMAT_S8_UINT_Z24_UNORM;
|
||||||
}
|
}
|
||||||
template.width0 = pDraw->width;
|
template.width0 = pDraw->width;
|
||||||
template.height0 = pDraw->height;
|
template.height0 = pDraw->height;
|
||||||
|
@ -456,7 +456,7 @@ xorg_dri2_init(ScreenPtr pScreen)
|
||||||
0,
|
0,
|
||||||
PIPE_BIND_DEPTH_STENCIL);
|
PIPE_BIND_DEPTH_STENCIL);
|
||||||
ms->ds_depth_bits_last =
|
ms->ds_depth_bits_last =
|
||||||
ms->screen->is_format_supported(ms->screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
ms->screen->is_format_supported(ms->screen, PIPE_FORMAT_Z24_UNORM_S8_UINT,
|
||||||
PIPE_TEXTURE_2D,
|
PIPE_TEXTURE_2D,
|
||||||
0,
|
0,
|
||||||
PIPE_BIND_DEPTH_STENCIL);
|
PIPE_BIND_DEPTH_STENCIL);
|
||||||
|
|
|
@ -180,7 +180,7 @@ print_unpacked_z_32unorm(const struct util_format_description *format_desc,
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
print_unpacked_s_8uscaled(const struct util_format_description *format_desc,
|
print_unpacked_s_8uint(const struct util_format_description *format_desc,
|
||||||
const char *prefix,
|
const char *prefix,
|
||||||
uint8_t unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH],
|
uint8_t unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH],
|
||||||
const char *suffix)
|
const char *suffix)
|
||||||
|
@ -553,7 +553,7 @@ test_format_pack_z_32unorm(const struct util_format_description *format_desc,
|
||||||
|
|
||||||
|
|
||||||
static boolean
|
static boolean
|
||||||
test_format_unpack_s_8uscaled(const struct util_format_description *format_desc,
|
test_format_unpack_s_8uint(const struct util_format_description *format_desc,
|
||||||
const struct util_format_test_case *test)
|
const struct util_format_test_case *test)
|
||||||
{
|
{
|
||||||
uint8_t unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH] = { { 0 } };
|
uint8_t unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH] = { { 0 } };
|
||||||
|
@ -561,7 +561,7 @@ test_format_unpack_s_8uscaled(const struct util_format_description *format_desc,
|
||||||
unsigned i, j;
|
unsigned i, j;
|
||||||
boolean success;
|
boolean success;
|
||||||
|
|
||||||
format_desc->unpack_s_8uscaled(&unpacked[0][0], sizeof unpacked[0],
|
format_desc->unpack_s_8uint(&unpacked[0][0], sizeof unpacked[0],
|
||||||
test->packed, 0,
|
test->packed, 0,
|
||||||
format_desc->block.width, format_desc->block.height);
|
format_desc->block.width, format_desc->block.height);
|
||||||
|
|
||||||
|
@ -581,8 +581,8 @@ test_format_unpack_s_8uscaled(const struct util_format_description *format_desc,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
print_unpacked_s_8uscaled(format_desc, "FAILED: ", unpacked, " obtained\n");
|
print_unpacked_s_8uint(format_desc, "FAILED: ", unpacked, " obtained\n");
|
||||||
print_unpacked_s_8uscaled(format_desc, " ", expected, " expected\n");
|
print_unpacked_s_8uint(format_desc, " ", expected, " expected\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
|
@ -590,7 +590,7 @@ test_format_unpack_s_8uscaled(const struct util_format_description *format_desc,
|
||||||
|
|
||||||
|
|
||||||
static boolean
|
static boolean
|
||||||
test_format_pack_s_8uscaled(const struct util_format_description *format_desc,
|
test_format_pack_s_8uint(const struct util_format_description *format_desc,
|
||||||
const struct util_format_test_case *test)
|
const struct util_format_test_case *test)
|
||||||
{
|
{
|
||||||
uint8_t unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH];
|
uint8_t unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH];
|
||||||
|
@ -609,7 +609,7 @@ test_format_pack_s_8uscaled(const struct util_format_description *format_desc,
|
||||||
|
|
||||||
memset(packed, 0, sizeof packed);
|
memset(packed, 0, sizeof packed);
|
||||||
|
|
||||||
format_desc->pack_s_8uscaled(packed, 0,
|
format_desc->pack_s_8uint(packed, 0,
|
||||||
&unpacked[0][0], sizeof unpacked[0],
|
&unpacked[0][0], sizeof unpacked[0],
|
||||||
format_desc->block.width, format_desc->block.height);
|
format_desc->block.width, format_desc->block.height);
|
||||||
|
|
||||||
|
@ -694,8 +694,8 @@ test_all(void)
|
||||||
TEST_ONE_FUNC(pack_z_32unorm);
|
TEST_ONE_FUNC(pack_z_32unorm);
|
||||||
TEST_ONE_FUNC(unpack_z_float);
|
TEST_ONE_FUNC(unpack_z_float);
|
||||||
TEST_ONE_FUNC(pack_z_float);
|
TEST_ONE_FUNC(pack_z_float);
|
||||||
TEST_ONE_FUNC(unpack_s_8uscaled);
|
TEST_ONE_FUNC(unpack_s_8uint);
|
||||||
TEST_ONE_FUNC(pack_s_8uscaled);
|
TEST_ONE_FUNC(pack_s_8uint);
|
||||||
|
|
||||||
# undef TEST_ONE_FUNC
|
# undef TEST_ONE_FUNC
|
||||||
}
|
}
|
||||||
|
|
|
@ -871,7 +871,7 @@ draw_stencil_pixels(struct gl_context *ctx, GLint x, GLint y,
|
||||||
|
|
||||||
if (format == GL_DEPTH_STENCIL) {
|
if (format == GL_DEPTH_STENCIL) {
|
||||||
GLenum ztype =
|
GLenum ztype =
|
||||||
pt->resource->format == PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED ?
|
pt->resource->format == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT ?
|
||||||
GL_FLOAT : GL_UNSIGNED_INT;
|
GL_FLOAT : GL_UNSIGNED_INT;
|
||||||
|
|
||||||
_mesa_unpack_depth_span(ctx, spanWidth, ztype, zValues,
|
_mesa_unpack_depth_span(ctx, spanWidth, ztype, zValues,
|
||||||
|
@ -896,14 +896,14 @@ draw_stencil_pixels(struct gl_context *ctx, GLint x, GLint y,
|
||||||
|
|
||||||
/* now pack the stencil (and Z) values in the dest format */
|
/* now pack the stencil (and Z) values in the dest format */
|
||||||
switch (pt->resource->format) {
|
switch (pt->resource->format) {
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
{
|
{
|
||||||
ubyte *dest = stmap + spanY * pt->stride + spanX;
|
ubyte *dest = stmap + spanY * pt->stride + spanX;
|
||||||
assert(usage == PIPE_TRANSFER_WRITE);
|
assert(usage == PIPE_TRANSFER_WRITE);
|
||||||
memcpy(dest, sValues, spanWidth);
|
memcpy(dest, sValues, spanWidth);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
if (format == GL_DEPTH_STENCIL) {
|
if (format == GL_DEPTH_STENCIL) {
|
||||||
uint *dest = (uint *) (stmap + spanY * pt->stride + spanX*4);
|
uint *dest = (uint *) (stmap + spanY * pt->stride + spanX*4);
|
||||||
GLint k;
|
GLint k;
|
||||||
|
@ -921,7 +921,7 @@ draw_stencil_pixels(struct gl_context *ctx, GLint x, GLint y,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
if (format == GL_DEPTH_STENCIL) {
|
if (format == GL_DEPTH_STENCIL) {
|
||||||
uint *dest = (uint *) (stmap + spanY * pt->stride + spanX*4);
|
uint *dest = (uint *) (stmap + spanY * pt->stride + spanX*4);
|
||||||
GLint k;
|
GLint k;
|
||||||
|
@ -939,7 +939,7 @@ draw_stencil_pixels(struct gl_context *ctx, GLint x, GLint y,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
if (format == GL_DEPTH_STENCIL) {
|
if (format == GL_DEPTH_STENCIL) {
|
||||||
uint *dest = (uint *) (stmap + spanY * pt->stride + spanX*4);
|
uint *dest = (uint *) (stmap + spanY * pt->stride + spanX*4);
|
||||||
GLfloat *destf = (GLfloat*)dest;
|
GLfloat *destf = (GLfloat*)dest;
|
||||||
|
@ -1112,20 +1112,20 @@ st_DrawPixels(struct gl_context *ctx, GLint x, GLint y,
|
||||||
enum pipe_format stencil_format = PIPE_FORMAT_NONE;
|
enum pipe_format stencil_format = PIPE_FORMAT_NONE;
|
||||||
|
|
||||||
switch (pt->format) {
|
switch (pt->format) {
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_X24S8_USCALED:
|
case PIPE_FORMAT_X24S8_UINT:
|
||||||
stencil_format = PIPE_FORMAT_X24S8_USCALED;
|
stencil_format = PIPE_FORMAT_X24S8_UINT;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_S8X24_USCALED:
|
case PIPE_FORMAT_S8X24_UINT:
|
||||||
stencil_format = PIPE_FORMAT_S8X24_USCALED;
|
stencil_format = PIPE_FORMAT_S8X24_UINT;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
case PIPE_FORMAT_X32_S8X24_USCALED:
|
case PIPE_FORMAT_X32_S8X24_UINT:
|
||||||
stencil_format = PIPE_FORMAT_X32_S8X24_USCALED;
|
stencil_format = PIPE_FORMAT_X32_S8X24_UINT;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
stencil_format = PIPE_FORMAT_S8_USCALED;
|
stencil_format = PIPE_FORMAT_S8_UINT;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
|
@ -1241,7 +1241,7 @@ copy_stencil_pixels(struct gl_context *ctx, GLint srcx, GLint srcy,
|
||||||
src = buffer + i * width;
|
src = buffer + i * width;
|
||||||
|
|
||||||
switch (ptDraw->resource->format) {
|
switch (ptDraw->resource->format) {
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
{
|
{
|
||||||
uint *dst4 = (uint *) dst;
|
uint *dst4 = (uint *) dst;
|
||||||
int j;
|
int j;
|
||||||
|
@ -1252,7 +1252,7 @@ copy_stencil_pixels(struct gl_context *ctx, GLint srcx, GLint srcy,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
{
|
{
|
||||||
uint *dst4 = (uint *) dst;
|
uint *dst4 = (uint *) dst;
|
||||||
int j;
|
int j;
|
||||||
|
@ -1263,11 +1263,11 @@ copy_stencil_pixels(struct gl_context *ctx, GLint srcx, GLint srcy,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
assert(usage == PIPE_TRANSFER_WRITE);
|
assert(usage == PIPE_TRANSFER_WRITE);
|
||||||
memcpy(dst, src, width);
|
memcpy(dst, src, width);
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
{
|
{
|
||||||
uint *dst4 = (uint *) dst;
|
uint *dst4 = (uint *) dst;
|
||||||
int j;
|
int j;
|
||||||
|
|
|
@ -53,7 +53,7 @@ st_pipe_format_to_base_format(enum pipe_format format)
|
||||||
base_format = GL_DEPTH_STENCIL;
|
base_format = GL_DEPTH_STENCIL;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (format == PIPE_FORMAT_S8_USCALED)
|
if (format == PIPE_FORMAT_S8_UINT)
|
||||||
base_format = GL_STENCIL_INDEX;
|
base_format = GL_STENCIL_INDEX;
|
||||||
else
|
else
|
||||||
base_format = GL_DEPTH_COMPONENT;
|
base_format = GL_DEPTH_COMPONENT;
|
||||||
|
|
|
@ -259,13 +259,13 @@ st_new_renderbuffer_fb(enum pipe_format format, int samples, boolean sw)
|
||||||
case PIPE_FORMAT_Z32_UNORM:
|
case PIPE_FORMAT_Z32_UNORM:
|
||||||
strb->Base.InternalFormat = GL_DEPTH_COMPONENT32;
|
strb->Base.InternalFormat = GL_DEPTH_COMPONENT32;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
strb->Base.InternalFormat = GL_DEPTH24_STENCIL8_EXT;
|
strb->Base.InternalFormat = GL_DEPTH24_STENCIL8_EXT;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
strb->Base.InternalFormat = GL_STENCIL_INDEX8_EXT;
|
strb->Base.InternalFormat = GL_STENCIL_INDEX8_EXT;
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_R16G16B16A16_SNORM:
|
case PIPE_FORMAT_R16G16B16A16_SNORM:
|
||||||
|
|
|
@ -109,13 +109,13 @@ st_read_stencil_pixels(struct gl_context *ctx, GLint x, GLint y,
|
||||||
|
|
||||||
/* get stencil (and Z) values */
|
/* get stencil (and Z) values */
|
||||||
switch (pt->resource->format) {
|
switch (pt->resource->format) {
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
{
|
{
|
||||||
const ubyte *src = stmap + srcY * pt->stride;
|
const ubyte *src = stmap + srcY * pt->stride;
|
||||||
memcpy(sValues, src, width);
|
memcpy(sValues, src, width);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
if (format == GL_DEPTH_STENCIL) {
|
if (format == GL_DEPTH_STENCIL) {
|
||||||
const uint *src = (uint *) (stmap + srcY * pt->stride);
|
const uint *src = (uint *) (stmap + srcY * pt->stride);
|
||||||
const GLfloat scale = 1.0f / (0xffffff);
|
const GLfloat scale = 1.0f / (0xffffff);
|
||||||
|
@ -133,7 +133,7 @@ st_read_stencil_pixels(struct gl_context *ctx, GLint x, GLint y,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
if (format == GL_DEPTH_STENCIL) {
|
if (format == GL_DEPTH_STENCIL) {
|
||||||
const uint *src = (uint *) (stmap + srcY * pt->stride);
|
const uint *src = (uint *) (stmap + srcY * pt->stride);
|
||||||
const GLfloat scale = 1.0f / (0xffffff);
|
const GLfloat scale = 1.0f / (0xffffff);
|
||||||
|
@ -151,7 +151,7 @@ st_read_stencil_pixels(struct gl_context *ctx, GLint x, GLint y,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
if (format == GL_DEPTH_STENCIL) {
|
if (format == GL_DEPTH_STENCIL) {
|
||||||
const uint *src = (uint *) (stmap + srcY * pt->stride);
|
const uint *src = (uint *) (stmap + srcY * pt->stride);
|
||||||
const GLfloat *srcf = (const GLfloat*)src;
|
const GLfloat *srcf = (const GLfloat*)src;
|
||||||
|
@ -502,7 +502,7 @@ st_readpixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei h
|
||||||
const GLint dstStride = _mesa_image_row_stride(&clippedPacking, width,
|
const GLint dstStride = _mesa_image_row_stride(&clippedPacking, width,
|
||||||
format, type);
|
format, type);
|
||||||
|
|
||||||
if (pformat == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
if (pformat == PIPE_FORMAT_Z24_UNORM_S8_UINT ||
|
||||||
pformat == PIPE_FORMAT_Z24X8_UNORM) {
|
pformat == PIPE_FORMAT_Z24X8_UNORM) {
|
||||||
if (format == GL_DEPTH_COMPONENT) {
|
if (format == GL_DEPTH_COMPONENT) {
|
||||||
for (i = 0; i < height; i++) {
|
for (i = 0; i < height; i++) {
|
||||||
|
@ -534,7 +534,7 @@ st_readpixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei h
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (pformat == PIPE_FORMAT_S8_USCALED_Z24_UNORM ||
|
else if (pformat == PIPE_FORMAT_S8_UINT_Z24_UNORM ||
|
||||||
pformat == PIPE_FORMAT_X8Z24_UNORM) {
|
pformat == PIPE_FORMAT_X8Z24_UNORM) {
|
||||||
if (format == GL_DEPTH_COMPONENT) {
|
if (format == GL_DEPTH_COMPONENT) {
|
||||||
for (i = 0; i < height; i++) {
|
for (i = 0; i < height; i++) {
|
||||||
|
@ -601,7 +601,7 @@ st_readpixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei h
|
||||||
dst += dstStride;
|
dst += dstStride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (pformat == PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED) {
|
else if (pformat == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT) {
|
||||||
assert(format == GL_DEPTH_COMPONENT);
|
assert(format == GL_DEPTH_COMPONENT);
|
||||||
for (i = 0; i < height; i++) {
|
for (i = 0; i < height; i++) {
|
||||||
GLfloat zfloat[MAX_WIDTH]; /* Z32 */
|
GLfloat zfloat[MAX_WIDTH]; /* Z32 */
|
||||||
|
|
|
@ -368,18 +368,18 @@ void st_init_extensions(struct st_context *st)
|
||||||
/* GL_EXT_packed_depth_stencil requires both the ability to render to
|
/* GL_EXT_packed_depth_stencil requires both the ability to render to
|
||||||
* a depth/stencil buffer and texture from depth/stencil source.
|
* a depth/stencil buffer and texture from depth/stencil source.
|
||||||
*/
|
*/
|
||||||
if (screen->is_format_supported(screen, PIPE_FORMAT_S8_USCALED_Z24_UNORM,
|
if (screen->is_format_supported(screen, PIPE_FORMAT_S8_UINT_Z24_UNORM,
|
||||||
PIPE_TEXTURE_2D, 0,
|
PIPE_TEXTURE_2D, 0,
|
||||||
PIPE_BIND_DEPTH_STENCIL) &&
|
PIPE_BIND_DEPTH_STENCIL) &&
|
||||||
screen->is_format_supported(screen, PIPE_FORMAT_S8_USCALED_Z24_UNORM,
|
screen->is_format_supported(screen, PIPE_FORMAT_S8_UINT_Z24_UNORM,
|
||||||
PIPE_TEXTURE_2D, 0,
|
PIPE_TEXTURE_2D, 0,
|
||||||
PIPE_BIND_SAMPLER_VIEW)) {
|
PIPE_BIND_SAMPLER_VIEW)) {
|
||||||
ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE;
|
ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE;
|
||||||
}
|
}
|
||||||
else if (screen->is_format_supported(screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
else if (screen->is_format_supported(screen, PIPE_FORMAT_Z24_UNORM_S8_UINT,
|
||||||
PIPE_TEXTURE_2D, 0,
|
PIPE_TEXTURE_2D, 0,
|
||||||
PIPE_BIND_DEPTH_STENCIL) &&
|
PIPE_BIND_DEPTH_STENCIL) &&
|
||||||
screen->is_format_supported(screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
screen->is_format_supported(screen, PIPE_FORMAT_Z24_UNORM_S8_UINT,
|
||||||
PIPE_TEXTURE_2D, 0,
|
PIPE_TEXTURE_2D, 0,
|
||||||
PIPE_BIND_SAMPLER_VIEW)) {
|
PIPE_BIND_SAMPLER_VIEW)) {
|
||||||
ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE;
|
ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE;
|
||||||
|
@ -650,7 +650,7 @@ void st_init_extensions(struct st_context *st)
|
||||||
PIPE_TEXTURE_2D, 0,
|
PIPE_TEXTURE_2D, 0,
|
||||||
PIPE_BIND_DEPTH_STENCIL |
|
PIPE_BIND_DEPTH_STENCIL |
|
||||||
PIPE_BIND_SAMPLER_VIEW) &&
|
PIPE_BIND_SAMPLER_VIEW) &&
|
||||||
screen->is_format_supported(screen, PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED,
|
screen->is_format_supported(screen, PIPE_FORMAT_Z32_FLOAT_S8X24_UINT,
|
||||||
PIPE_TEXTURE_2D, 0,
|
PIPE_TEXTURE_2D, 0,
|
||||||
PIPE_BIND_DEPTH_STENCIL |
|
PIPE_BIND_DEPTH_STENCIL |
|
||||||
PIPE_BIND_SAMPLER_VIEW)) {
|
PIPE_BIND_SAMPLER_VIEW)) {
|
||||||
|
|
|
@ -89,13 +89,13 @@ st_format_datatype(enum pipe_format format)
|
||||||
format == PIPE_FORMAT_R9G9B9E5_FLOAT) {
|
format == PIPE_FORMAT_R9G9B9E5_FLOAT) {
|
||||||
return GL_FLOAT;
|
return GL_FLOAT;
|
||||||
}
|
}
|
||||||
else if (format == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
else if (format == PIPE_FORMAT_Z24_UNORM_S8_UINT ||
|
||||||
format == PIPE_FORMAT_S8_USCALED_Z24_UNORM ||
|
format == PIPE_FORMAT_S8_UINT_Z24_UNORM ||
|
||||||
format == PIPE_FORMAT_Z24X8_UNORM ||
|
format == PIPE_FORMAT_Z24X8_UNORM ||
|
||||||
format == PIPE_FORMAT_X8Z24_UNORM) {
|
format == PIPE_FORMAT_X8Z24_UNORM) {
|
||||||
return GL_UNSIGNED_INT_24_8;
|
return GL_UNSIGNED_INT_24_8;
|
||||||
}
|
}
|
||||||
else if (format == PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED) {
|
else if (format == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT) {
|
||||||
return GL_FLOAT_32_UNSIGNED_INT_24_8_REV;
|
return GL_FLOAT_32_UNSIGNED_INT_24_8_REV;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -199,19 +199,19 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat)
|
||||||
case MESA_FORMAT_Z32:
|
case MESA_FORMAT_Z32:
|
||||||
return PIPE_FORMAT_Z32_UNORM;
|
return PIPE_FORMAT_Z32_UNORM;
|
||||||
case MESA_FORMAT_Z24_S8:
|
case MESA_FORMAT_Z24_S8:
|
||||||
return PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
return PIPE_FORMAT_S8_UINT_Z24_UNORM;
|
||||||
case MESA_FORMAT_S8_Z24:
|
case MESA_FORMAT_S8_Z24:
|
||||||
return PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
return PIPE_FORMAT_Z24_UNORM_S8_UINT;
|
||||||
case MESA_FORMAT_Z24_X8:
|
case MESA_FORMAT_Z24_X8:
|
||||||
return PIPE_FORMAT_X8Z24_UNORM;
|
return PIPE_FORMAT_X8Z24_UNORM;
|
||||||
case MESA_FORMAT_X8_Z24:
|
case MESA_FORMAT_X8_Z24:
|
||||||
return PIPE_FORMAT_Z24X8_UNORM;
|
return PIPE_FORMAT_Z24X8_UNORM;
|
||||||
case MESA_FORMAT_S8:
|
case MESA_FORMAT_S8:
|
||||||
return PIPE_FORMAT_S8_USCALED;
|
return PIPE_FORMAT_S8_UINT;
|
||||||
case MESA_FORMAT_Z32_FLOAT:
|
case MESA_FORMAT_Z32_FLOAT:
|
||||||
return PIPE_FORMAT_Z32_FLOAT;
|
return PIPE_FORMAT_Z32_FLOAT;
|
||||||
case MESA_FORMAT_Z32_FLOAT_X24S8:
|
case MESA_FORMAT_Z32_FLOAT_X24S8:
|
||||||
return PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED;
|
return PIPE_FORMAT_Z32_FLOAT_S8X24_UINT;
|
||||||
case MESA_FORMAT_YCBCR:
|
case MESA_FORMAT_YCBCR:
|
||||||
return PIPE_FORMAT_UYVY;
|
return PIPE_FORMAT_UYVY;
|
||||||
#if FEATURE_texture_s3tc
|
#if FEATURE_texture_s3tc
|
||||||
|
@ -508,7 +508,7 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
|
||||||
return MESA_FORMAT_I8;
|
return MESA_FORMAT_I8;
|
||||||
case PIPE_FORMAT_I16_UNORM:
|
case PIPE_FORMAT_I16_UNORM:
|
||||||
return MESA_FORMAT_I16;
|
return MESA_FORMAT_I16;
|
||||||
case PIPE_FORMAT_S8_USCALED:
|
case PIPE_FORMAT_S8_UINT:
|
||||||
return MESA_FORMAT_S8;
|
return MESA_FORMAT_S8;
|
||||||
|
|
||||||
case PIPE_FORMAT_R16G16B16A16_UNORM:
|
case PIPE_FORMAT_R16G16B16A16_UNORM:
|
||||||
|
@ -518,17 +518,17 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
|
||||||
return MESA_FORMAT_Z16;
|
return MESA_FORMAT_Z16;
|
||||||
case PIPE_FORMAT_Z32_UNORM:
|
case PIPE_FORMAT_Z32_UNORM:
|
||||||
return MESA_FORMAT_Z32;
|
return MESA_FORMAT_Z32;
|
||||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||||
return MESA_FORMAT_Z24_S8;
|
return MESA_FORMAT_Z24_S8;
|
||||||
case PIPE_FORMAT_X8Z24_UNORM:
|
case PIPE_FORMAT_X8Z24_UNORM:
|
||||||
return MESA_FORMAT_Z24_X8;
|
return MESA_FORMAT_Z24_X8;
|
||||||
case PIPE_FORMAT_Z24X8_UNORM:
|
case PIPE_FORMAT_Z24X8_UNORM:
|
||||||
return MESA_FORMAT_X8_Z24;
|
return MESA_FORMAT_X8_Z24;
|
||||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||||
return MESA_FORMAT_S8_Z24;
|
return MESA_FORMAT_S8_Z24;
|
||||||
case PIPE_FORMAT_Z32_FLOAT:
|
case PIPE_FORMAT_Z32_FLOAT:
|
||||||
return MESA_FORMAT_Z32_FLOAT;
|
return MESA_FORMAT_Z32_FLOAT;
|
||||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
|
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||||
return MESA_FORMAT_Z32_FLOAT_X24S8;
|
return MESA_FORMAT_Z32_FLOAT_X24S8;
|
||||||
|
|
||||||
case PIPE_FORMAT_UYVY:
|
case PIPE_FORMAT_UYVY:
|
||||||
|
@ -818,8 +818,8 @@ struct format_mapping
|
||||||
PIPE_FORMAT_Z24X8_UNORM, \
|
PIPE_FORMAT_Z24X8_UNORM, \
|
||||||
PIPE_FORMAT_X8Z24_UNORM, \
|
PIPE_FORMAT_X8Z24_UNORM, \
|
||||||
PIPE_FORMAT_Z16_UNORM, \
|
PIPE_FORMAT_Z16_UNORM, \
|
||||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED, \
|
PIPE_FORMAT_Z24_UNORM_S8_UINT, \
|
||||||
PIPE_FORMAT_S8_USCALED_Z24_UNORM, \
|
PIPE_FORMAT_S8_UINT_Z24_UNORM, \
|
||||||
0
|
0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -988,19 +988,19 @@ static const struct format_mapping format_map[] = {
|
||||||
{ GL_STENCIL_INDEX, GL_STENCIL_INDEX1_EXT, GL_STENCIL_INDEX4_EXT,
|
{ GL_STENCIL_INDEX, GL_STENCIL_INDEX1_EXT, GL_STENCIL_INDEX4_EXT,
|
||||||
GL_STENCIL_INDEX8_EXT, GL_STENCIL_INDEX16_EXT, 0 },
|
GL_STENCIL_INDEX8_EXT, GL_STENCIL_INDEX16_EXT, 0 },
|
||||||
{
|
{
|
||||||
PIPE_FORMAT_S8_USCALED, PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
PIPE_FORMAT_S8_UINT, PIPE_FORMAT_Z24_UNORM_S8_UINT,
|
||||||
PIPE_FORMAT_S8_USCALED_Z24_UNORM, 0
|
PIPE_FORMAT_S8_UINT_Z24_UNORM, 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Depth / Stencil formats */
|
/* Depth / Stencil formats */
|
||||||
{
|
{
|
||||||
{ GL_DEPTH_STENCIL_EXT, GL_DEPTH24_STENCIL8_EXT, 0 },
|
{ GL_DEPTH_STENCIL_EXT, GL_DEPTH24_STENCIL8_EXT, 0 },
|
||||||
{ PIPE_FORMAT_Z24_UNORM_S8_USCALED, PIPE_FORMAT_S8_USCALED_Z24_UNORM, 0 }
|
{ PIPE_FORMAT_Z24_UNORM_S8_UINT, PIPE_FORMAT_S8_UINT_Z24_UNORM, 0 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
{ GL_DEPTH32F_STENCIL8, 0 },
|
{ GL_DEPTH32F_STENCIL8, 0 },
|
||||||
{ PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED, 0 }
|
{ PIPE_FORMAT_Z32_FLOAT_S8X24_UINT, 0 }
|
||||||
},
|
},
|
||||||
|
|
||||||
/* sRGB formats */
|
/* sRGB formats */
|
||||||
|
|
Loading…
Reference in New Issue