gallium: adapt all code to the renamed depth/stencil formats
This commit is contained in:
@@ -495,8 +495,8 @@ lp_build_depth_stencil_test(LLVMBuilderRef builder,
|
||||
assert(format_desc->block.height == 1);
|
||||
|
||||
if (stencil[0].enabled) {
|
||||
assert(format_desc->format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
format_desc->format == PIPE_FORMAT_S8Z24_UNORM);
|
||||
assert(format_desc->format == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
||||
format_desc->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM);
|
||||
}
|
||||
|
||||
assert(z_swizzle < 4);
|
||||
|
||||
@@ -446,17 +446,17 @@ util_pack_z(enum pipe_format format, double z)
|
||||
return (uint) (z * 0xffffffff);
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
return (uint)z;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
if (z == 1.0)
|
||||
return 0xffffff;
|
||||
return (uint) (z * 0xffffff);
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
if (z == 1.0)
|
||||
return 0xffffff00;
|
||||
return ((uint) (z * 0xffffff)) << 8;
|
||||
case PIPE_FORMAT_S8_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED:
|
||||
/* this case can get it via util_pack_z_stencil() */
|
||||
return 0;
|
||||
default:
|
||||
@@ -477,13 +477,13 @@ util_pack_z_stencil(enum pipe_format format, double z, uint s)
|
||||
unsigned packed = util_pack_z(format, z);
|
||||
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
packed |= s << 24;
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
packed |= s;
|
||||
break;
|
||||
case PIPE_FORMAT_S8_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED:
|
||||
packed |= s;
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -1036,7 +1036,7 @@ z32_get_tile_rgba(const unsigned *src,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_Z24S8_UNORM ***/
|
||||
/*** PIPE_FORMAT_Z24_UNORM_S8_USCALED ***/
|
||||
|
||||
/**
|
||||
* Return Z component as four float in [0,1]. Stencil part ignored.
|
||||
@@ -1063,7 +1063,7 @@ s8z24_get_tile_rgba(const unsigned *src,
|
||||
}
|
||||
|
||||
|
||||
/*** PIPE_FORMAT_S8Z24_UNORM ***/
|
||||
/*** PIPE_FORMAT_S8_USCALED_Z24_UNORM ***/
|
||||
|
||||
/**
|
||||
* Return Z component as four float in [0,1]. Stencil part ignored.
|
||||
@@ -1271,11 +1271,11 @@ pipe_tile_raw_to_rgba(enum pipe_format format,
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
z32_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
s8z24_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
z24s8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
|
||||
break;
|
||||
@@ -1468,11 +1468,11 @@ pipe_put_tile_rgba(struct pipe_context *pipe,
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
/*z32_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
/*s8z24_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
/*z24s8_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
|
||||
break;
|
||||
@@ -1525,7 +1525,7 @@ pipe_get_tile_z(struct pipe_context *pipe,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
{
|
||||
const uint *ptrc
|
||||
@@ -1540,7 +1540,7 @@ pipe_get_tile_z(struct pipe_context *pipe,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
{
|
||||
const uint *ptrc
|
||||
@@ -1609,7 +1609,7 @@ pipe_put_tile_z(struct pipe_context *pipe,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
{
|
||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||
assert((pt->usage & PIPE_TRANSFER_READ_WRITE) == PIPE_TRANSFER_READ_WRITE);
|
||||
@@ -1636,7 +1636,7 @@ pipe_put_tile_z(struct pipe_context *pipe,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
{
|
||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||
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");
|
||||
|
||||
switch(zs_format) {
|
||||
case PIPE_FORMAT_Z24S8_UNORM: /* fall through */
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED: /* fall through */
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
/* prepare mask to extract Z vals from ZS vals */
|
||||
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);
|
||||
break;
|
||||
|
||||
case PIPE_FORMAT_S8Z24_UNORM: /* fall through */
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM: /* fall through */
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
/* convert fragment Z from [0,1] to 32-bit ints */
|
||||
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].
|
||||
*/
|
||||
spe_comment(f, 0, "Store quad's depth/stencil values in tile");
|
||||
if (zs_format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
if (zs_format == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
||||
zs_format == PIPE_FORMAT_Z24X8_UNORM) {
|
||||
spe_shli(f, fbS_reg, fbS_reg, 24); /* fbS = fbS << 24 */
|
||||
spe_or(f, fbZS_reg, fbS_reg, fbZ_reg); /* fbZS = fbS | fbZ */
|
||||
}
|
||||
else if (zs_format == PIPE_FORMAT_S8Z24_UNORM ||
|
||||
else if (zs_format == PIPE_FORMAT_S8_USCALED_Z24_UNORM ||
|
||||
zs_format == PIPE_FORMAT_X8Z24_UNORM) {
|
||||
spe_shli(f, fbZ_reg, fbZ_reg, 8); /* fbZ = fbZ << 8 */
|
||||
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) {
|
||||
spe_move(f, fbZS_reg, fbZ_reg); /* fbZS = fbZ */
|
||||
}
|
||||
else if (zs_format == PIPE_FORMAT_S8_UNORM) {
|
||||
else if (zs_format == PIPE_FORMAT_S8_USCALED) {
|
||||
ASSERT(0); /* XXX to do */
|
||||
}
|
||||
else {
|
||||
@@ -2015,7 +2015,7 @@ gen_depth_stencil(struct cell_context *cell,
|
||||
* code before the fragment shader to cull fragments/quads that are
|
||||
* totally occluded/discarded.
|
||||
*
|
||||
* XXX we only support PIPE_FORMAT_S8Z24_UNORM z/stencil buffer right now.
|
||||
* XXX we only support PIPE_FORMAT_S8_USCALED_Z24_UNORM z/stencil buffer right now.
|
||||
*
|
||||
* See the spu_default_fragment_ops() function to see how the per-fragment
|
||||
* operations would be done with ordinary C code.
|
||||
|
||||
@@ -147,7 +147,7 @@ cell_is_format_supported( struct pipe_screen *screen,
|
||||
|
||||
/* only a few formats are known to work at this time */
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_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.zscale = (float) 0xffffffffu;
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
spu.fb.zsize = 4;
|
||||
|
||||
@@ -138,13 +138,13 @@ spu_fallback_fragment_ops(uint x, uint y,
|
||||
|
||||
if (spu.depth_stencil_alpha.stencil[0].enabled) {
|
||||
/* do stencil test */
|
||||
ASSERT(spu.fb.depth_format == PIPE_FORMAT_Z24S8_UNORM);
|
||||
ASSERT(spu.fb.depth_format == PIPE_FORMAT_Z24_UNORM_S8_USCALED);
|
||||
|
||||
}
|
||||
else if (spu.depth_stencil_alpha.depth.enabled) {
|
||||
/* do depth test */
|
||||
|
||||
ASSERT(spu.fb.depth_format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
ASSERT(spu.fb.depth_format == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
||||
spu.fb.depth_format == PIPE_FORMAT_Z24X8_UNORM);
|
||||
|
||||
vector unsigned int ifragZ;
|
||||
|
||||
@@ -178,13 +178,13 @@ i915_is_format_supported(struct pipe_screen *screen,
|
||||
PIPE_FORMAT_L8A8_UNORM,
|
||||
PIPE_FORMAT_UYVY,
|
||||
PIPE_FORMAT_YUYV,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
||||
PIPE_FORMAT_NONE /* list terminator */
|
||||
};
|
||||
static const enum pipe_format surface_supported[] = {
|
||||
PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
PIPE_FORMAT_B5G6R5_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
||||
PIPE_FORMAT_NONE /* list terminator */
|
||||
};
|
||||
const enum pipe_format *list;
|
||||
|
||||
@@ -50,7 +50,7 @@ static unsigned translate_format( enum pipe_format format )
|
||||
static unsigned translate_depth_format( enum pipe_format zformat )
|
||||
{
|
||||
switch (zformat) {
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
return DEPTH_FRMT_24_FIXED_8_OTHER;
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return DEPTH_FRMT_16_FIXED;
|
||||
|
||||
@@ -220,7 +220,7 @@ translate_texture_format(enum pipe_format pipeFormat)
|
||||
case PIPE_FORMAT_RGBA_DXT5:
|
||||
return (MAPSURF_COMPRESSED | MT_COMPRESS_DXT4_5);
|
||||
#endif
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
return (MAPSURF_32BIT | MT_32BIT_xI824);
|
||||
default:
|
||||
debug_printf("i915: translate_texture_format() bad image format %x\n",
|
||||
|
||||
@@ -266,7 +266,7 @@ static int emit_depthbuffer(struct brw_context *brw)
|
||||
cpp = 2;
|
||||
break;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
format = BRW_DEPTHFORMAT_D24_UNORM_S8_UINT;
|
||||
cpp = 4;
|
||||
break;
|
||||
|
||||
@@ -140,7 +140,7 @@ static void zstencil_clear(struct brw_context *brw,
|
||||
|
||||
switch (bsurface->base.format) {
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
value = ((unsigned)(depth * MASK24) & MASK24);
|
||||
break;
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
@@ -153,7 +153,7 @@ static void zstencil_clear(struct brw_context *brw,
|
||||
|
||||
switch (bsurface->base.format) {
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
value = value | (stencil << 24);
|
||||
break;
|
||||
|
||||
|
||||
@@ -252,7 +252,7 @@ brw_is_format_supported(struct pipe_screen *screen,
|
||||
/* depth */
|
||||
PIPE_FORMAT_Z32_FLOAT,
|
||||
PIPE_FORMAT_Z24X8_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
||||
PIPE_FORMAT_Z16_UNORM,
|
||||
/* signed */
|
||||
PIPE_FORMAT_R8G8_SNORM,
|
||||
@@ -268,7 +268,7 @@ brw_is_format_supported(struct pipe_screen *screen,
|
||||
static const enum pipe_format depth_supported[] = {
|
||||
PIPE_FORMAT_Z32_FLOAT,
|
||||
PIPE_FORMAT_Z24X8_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
||||
PIPE_FORMAT_Z16_UNORM,
|
||||
PIPE_FORMAT_NONE /* list terminator */
|
||||
};
|
||||
|
||||
@@ -158,7 +158,7 @@ static GLuint translate_tex_format( enum pipe_format pf )
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return BRW_SURFACEFORMAT_I16_UNORM;
|
||||
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
return BRW_SURFACEFORMAT_I24X8_UNORM;
|
||||
|
||||
|
||||
@@ -89,14 +89,14 @@ nv50_miptree_create(struct pipe_screen *pscreen, const struct pipe_texture *tmp)
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
tile_flags = 0x4800;
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
tile_flags = 0x1800;
|
||||
break;
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
tile_flags = 0x6c00;
|
||||
break;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
tile_flags = 0x2800;
|
||||
break;
|
||||
case PIPE_FORMAT_R32G32B32A32_FLOAT:
|
||||
|
||||
@@ -51,9 +51,9 @@ nv50_screen_is_format_supported(struct pipe_screen *pscreen,
|
||||
if (tex_usage & PIPE_TEXTURE_USAGE_DEPTH_STENCIL) {
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
return TRUE;
|
||||
default:
|
||||
break;
|
||||
@@ -75,8 +75,8 @@ nv50_screen_is_format_supported(struct pipe_screen *pscreen,
|
||||
case PIPE_FORMAT_DXT1_RGBA:
|
||||
case PIPE_FORMAT_DXT3_RGBA:
|
||||
case PIPE_FORMAT_DXT5_RGBA:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
case PIPE_FORMAT_R16G16B16A16_SNORM:
|
||||
case PIPE_FORMAT_R16G16B16A16_UNORM:
|
||||
|
||||
@@ -122,13 +122,13 @@ validate_fb(struct nv50_context *nv50)
|
||||
so_reloc (so, bo, fb->zsbuf->offset, NOUVEAU_BO_VRAM |
|
||||
NOUVEAU_BO_LOW | NOUVEAU_BO_RDWR, 0, 0);
|
||||
switch (fb->zsbuf->format) {
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
so_data(so, NV50TCL_ZETA_FORMAT_S8Z24_UNORM);
|
||||
break;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
so_data(so, NV50TCL_ZETA_FORMAT_X8Z24_UNORM);
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
so_data(so, NV50TCL_ZETA_FORMAT_Z24S8_UNORM);
|
||||
break;
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
|
||||
@@ -60,8 +60,8 @@ nv50_format(enum pipe_format format)
|
||||
/* only because we require src format == dst format: */
|
||||
case PIPE_FORMAT_R16G16_SNORM:
|
||||
case PIPE_FORMAT_R16G16_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
return NV50_2D_DST_FORMAT_A8R8G8B8_UNORM;
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
|
||||
@@ -62,8 +62,8 @@ static const uint32_t nv50_texture_formats[PIPE_FORMAT_COUNT] =
|
||||
_(DXT3_RGBA, UNORM, C0, C1, C2, C3, DXT3),
|
||||
_(DXT5_RGBA, UNORM, C0, C1, C2, C3, DXT5),
|
||||
|
||||
_MIXED(S8Z24_UNORM, UINT, UNORM, UINT, UINT, C1, C1, C1, ONE, 24_8),
|
||||
_MIXED(Z24S8_UNORM, UNORM, UINT, UINT, UINT, C0, C0, C0, ONE, 8_24),
|
||||
_MIXED(S8_USCALED_Z24_UNORM, UINT, UNORM, UINT, UINT, C1, C1, C1, ONE, 24_8),
|
||||
_MIXED(Z24_UNORM_S8_USCALED, UNORM, UINT, UINT, UINT, C0, C0, C0, ONE, 8_24),
|
||||
|
||||
_(R16G16B16A16_SNORM, UNORM, C0, C1, C2, C3, 16_16_16_16),
|
||||
_(R16G16B16A16_UNORM, SNORM, C0, C1, C2, C3, 16_16_16_16),
|
||||
|
||||
@@ -25,7 +25,7 @@ nv04_surface_format(enum pipe_format format)
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
return NV04_CONTEXT_SURFACES_2D_FORMAT_A8R8G8B8;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return NV04_CONTEXT_SURFACES_2D_FORMAT_Y32;
|
||||
default:
|
||||
@@ -45,7 +45,7 @@ nv04_rect_format(enum pipe_format format)
|
||||
return NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A16R5G6B5;
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8;
|
||||
default:
|
||||
|
||||
@@ -63,7 +63,7 @@ nv30_texture_formats[] = {
|
||||
_(I8_UNORM , L8 , S1, S1, S1, S1, X, X, X, X),
|
||||
_(L8A8_UNORM , A8L8 , S1, S1, S1, S1, X, X, X, Y),
|
||||
_(Z16_UNORM , R5G6B5 , S1, S1, S1, ONE, X, X, X, X),
|
||||
_(S8Z24_UNORM , A8R8G8B8, S1, S1, S1, ONE, X, X, X, X),
|
||||
_(S8_USCALED_Z24_UNORM , A8R8G8B8, S1, S1, S1, ONE, X, X, X, X),
|
||||
_(DXT1_RGB , DXT1 , S1, S1, S1, ONE, X, Y, Z, W),
|
||||
_(DXT1_RGBA , DXT1 , S1, S1, S1, S1, X, Y, Z, W),
|
||||
_(DXT3_RGBA , DXT3 , S1, S1, S1, S1, X, Y, Z, W),
|
||||
|
||||
@@ -81,7 +81,7 @@ nv40_texture_formats[] = {
|
||||
_(I8_UNORM , L8 , S1, S1, S1, S1, X, X, X, X, 0, 0, 0, 0),
|
||||
_(L8A8_UNORM , A8L8 , S1, S1, S1, S1, X, X, X, Y, 0, 0, 0, 0),
|
||||
_(Z16_UNORM , Z16 , S1, S1, S1, ONE, X, X, X, X, 0, 0, 0, 0),
|
||||
_(S8Z24_UNORM , Z24 , S1, S1, S1, ONE, X, X, X, X, 0, 0, 0, 0),
|
||||
_(S8_USCALED_Z24_UNORM , Z24 , S1, S1, S1, ONE, X, X, X, X, 0, 0, 0, 0),
|
||||
_(DXT1_RGB , DXT1 , S1, S1, S1, ONE, X, Y, Z, W, 0, 0, 0, 0),
|
||||
_(DXT1_RGBA , DXT1 , S1, S1, S1, S1, X, Y, Z, W, 0, 0, 0, 0),
|
||||
_(DXT3_RGBA , DXT3 , S1, S1, S1, S1, X, Y, Z, W, 0, 0, 0, 0),
|
||||
|
||||
@@ -133,7 +133,7 @@ nvfx_screen_surface_format_supported(struct pipe_screen *pscreen,
|
||||
} else
|
||||
if (tex_usage & PIPE_TEXTURE_USAGE_DEPTH_STENCIL) {
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return TRUE;
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
@@ -155,7 +155,7 @@ nvfx_screen_surface_format_supported(struct pipe_screen *pscreen,
|
||||
case PIPE_FORMAT_I8_UNORM:
|
||||
case PIPE_FORMAT_L8A8_UNORM:
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_DXT1_RGB:
|
||||
case PIPE_FORMAT_DXT1_RGBA:
|
||||
case PIPE_FORMAT_DXT3_RGBA:
|
||||
|
||||
@@ -102,7 +102,7 @@ nvfx_state_framebuffer_validate(struct nvfx_context *nvfx)
|
||||
rt_format |= NV34TCL_RT_FORMAT_ZETA_Z16;
|
||||
zeta_bits = 16;
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case 0:
|
||||
rt_format |= NV34TCL_RT_FORMAT_ZETA_Z24S8;
|
||||
|
||||
@@ -208,7 +208,7 @@ static boolean r300_is_format_supported(struct pipe_screen* screen,
|
||||
uint32_t retval = 0;
|
||||
boolean is_r500 = r300_screen(screen)->caps->is_r500;
|
||||
boolean is_z24 = format == PIPE_FORMAT_X8Z24_UNORM ||
|
||||
format == PIPE_FORMAT_S8Z24_UNORM;
|
||||
format == PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
||||
boolean is_color2101010 = format == PIPE_FORMAT_R10G10B10A2_UNORM;
|
||||
|
||||
if (target >= PIPE_MAX_TEXTURE_TYPES) {
|
||||
|
||||
@@ -104,7 +104,7 @@ static uint32_t r300_translate_texformat(enum pipe_format format)
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return R300_EASY_TX_FORMAT(X, X, X, X, X16);
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
return R300_EASY_TX_FORMAT(X, X, X, X, W24_FP);
|
||||
default:
|
||||
return ~0; /* Unsupported. */
|
||||
@@ -372,7 +372,7 @@ static uint32_t r300_translate_zsformat(enum pipe_format format)
|
||||
/* 24-bit depth, ignored stencil */
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
/* 24-bit depth, 8-bit stencil */
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
return R300_DEPTHFORMAT_24BIT_INT_Z_8BIT_STENCIL;
|
||||
default:
|
||||
return ~0; /* Unsupported. */
|
||||
|
||||
@@ -75,7 +75,7 @@ get_depth_stencil_values( struct depth_data *data,
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
for (j = 0; j < QUAD_SIZE; j++) {
|
||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||
@@ -84,7 +84,7 @@ get_depth_stencil_values( struct depth_data *data,
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
for (j = 0; j < QUAD_SIZE; j++) {
|
||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||
@@ -153,7 +153,7 @@ convert_quad_depth( struct depth_data *data,
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
{
|
||||
float scale = (float) ((1 << 24) - 1);
|
||||
|
||||
@@ -163,7 +163,7 @@ convert_quad_depth( struct depth_data *data,
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
{
|
||||
float scale = (float) ((1 << 24) - 1);
|
||||
|
||||
@@ -206,14 +206,14 @@ write_depth_stencil_values( struct depth_data *data,
|
||||
tile->data.depth32[y][x] = data->bzzzz[j];
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
for (j = 0; j < QUAD_SIZE; j++) {
|
||||
int x = quad->input.x0 % 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];
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
for (j = 0; j < QUAD_SIZE; j++) {
|
||||
int x = quad->input.x0 % TILE_SIZE + (j & 1);
|
||||
int y = quad->input.y0 % TILE_SIZE + (j >> 1);
|
||||
|
||||
@@ -158,13 +158,13 @@ sp_tile_cache_set_surface(struct softpipe_tile_cache *tc,
|
||||
PIPE_TRANSFER_READ_WRITE,
|
||||
0, 0, ps->width, ps->height);
|
||||
|
||||
tc->depth_stencil = (ps->format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
tc->depth_stencil = (ps->format == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
||||
ps->format == PIPE_FORMAT_Z24X8_UNORM ||
|
||||
ps->format == PIPE_FORMAT_S8Z24_UNORM ||
|
||||
ps->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM ||
|
||||
ps->format == PIPE_FORMAT_X8Z24_UNORM ||
|
||||
ps->format == PIPE_FORMAT_Z16_UNORM ||
|
||||
ps->format == PIPE_FORMAT_Z32_UNORM ||
|
||||
ps->format == PIPE_FORMAT_S8_UNORM);
|
||||
ps->format == PIPE_FORMAT_S8_USCALED);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ try_clear(struct svga_context *svga,
|
||||
if ((buffers & PIPE_CLEAR_DEPTHSTENCIL) && fb->zsbuf) {
|
||||
flags |= SVGA3D_CLEAR_DEPTH;
|
||||
|
||||
if (svga->curr.framebuffer.zsbuf->format == PIPE_FORMAT_S8Z24_UNORM)
|
||||
if (svga->curr.framebuffer.zsbuf->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM)
|
||||
flags |= SVGA3D_CLEAR_STENCIL;
|
||||
|
||||
rect.w = MAX2(rect.w, fb->zsbuf->width);
|
||||
|
||||
@@ -118,9 +118,9 @@ static void svga_set_framebuffer_state(struct pipe_context *pipe,
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
svga->curr.depthscale = 1.0f / DEPTH_BIAS_SCALE_FACTOR_D16;
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
svga->curr.depthscale = 1.0f / DEPTH_BIAS_SCALE_FACTOR_D24S8;
|
||||
break;
|
||||
|
||||
@@ -210,7 +210,7 @@ svga_translate_format_cap(enum pipe_format format)
|
||||
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return SVGA3D_DEVCAP_SURFACEFMT_Z_D16;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
return SVGA3D_DEVCAP_SURFACEFMT_Z_D24S8;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return SVGA3D_DEVCAP_SURFACEFMT_Z_D24X8;
|
||||
|
||||
@@ -81,7 +81,7 @@ svga_translate_format(enum pipe_format format)
|
||||
*/
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
return SVGA3D_Z_D16;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
return SVGA3D_Z_D24S8;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return SVGA3D_Z_D24X8;
|
||||
@@ -114,7 +114,7 @@ svga_translate_format_render(enum pipe_format format)
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
case PIPE_FORMAT_B4G4R4A4_UNORM:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
|
||||
@@ -70,7 +70,7 @@ static int emit_framebuffer( struct svga_context *svga,
|
||||
return ret;
|
||||
|
||||
if (curr->zsbuf &&
|
||||
curr->zsbuf->format == PIPE_FORMAT_S8Z24_UNORM) {
|
||||
curr->zsbuf->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM) {
|
||||
ret = SVGA3D_SetRenderTarget(svga->swc, SVGA3D_RT_STENCIL, curr->zsbuf);
|
||||
if (ret != PIPE_OK)
|
||||
return ret;
|
||||
|
||||
@@ -97,10 +97,10 @@ dri_fill_in_modes(struct dri_screen *screen,
|
||||
pf_z24x8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_X8Z24_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_s8z24 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z24S8_UNORM,
|
||||
pf_s8z24 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_z24s8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_S8Z24_UNORM,
|
||||
pf_z24s8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_S8_USCALED_Z24_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
pf_a8r8g8b8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_B8G8R8A8_UNORM,
|
||||
@@ -241,8 +241,8 @@ dri_fill_st_visual(struct st_visual *stvis, struct dri_screen *screen,
|
||||
PIPE_FORMAT_X8Z24_UNORM;
|
||||
} else {
|
||||
stvis->depth_stencil_format = (screen->sd_depth_bits_last) ?
|
||||
PIPE_FORMAT_Z24S8_UNORM:
|
||||
PIPE_FORMAT_S8Z24_UNORM;
|
||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
||||
}
|
||||
break;
|
||||
case 32:
|
||||
|
||||
@@ -631,9 +631,9 @@ kms_display_get_configs(struct native_display *ndpy, int *num_configs)
|
||||
nconf->mode.alphaBits = 8;
|
||||
nconf->mode.rgbBits = 32;
|
||||
|
||||
format = PIPE_FORMAT_Z24S8_UNORM;
|
||||
format = PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
||||
if (!kms_display_is_format_supported(&kdpy->base, format, FALSE)) {
|
||||
format = PIPE_FORMAT_S8Z24_UNORM;
|
||||
format = PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
||||
if (!kms_display_is_format_supported(&kdpy->base, format, FALSE))
|
||||
format = PIPE_FORMAT_NONE;
|
||||
}
|
||||
|
||||
@@ -558,8 +558,8 @@ choose_depth_stencil_format(const __GLcontextModes *mode,
|
||||
break;
|
||||
case 24:
|
||||
if (mode->stencilBits) {
|
||||
formats[count++] = PIPE_FORMAT_Z24S8_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_S8Z24_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
||||
formats[count++] = PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
||||
}
|
||||
else {
|
||||
formats[count++] = PIPE_FORMAT_Z24X8_UNORM;
|
||||
|
||||
@@ -526,8 +526,8 @@ ximage_display_get_configs(struct native_display *ndpy, int *num_configs)
|
||||
xconf->base.stencil_format = PIPE_FORMAT_NONE;
|
||||
/* create the second config with depth/stencil buffer */
|
||||
if (j == 1) {
|
||||
xconf->base.depth_format = PIPE_FORMAT_Z24S8_UNORM;
|
||||
xconf->base.stencil_format = PIPE_FORMAT_Z24S8_UNORM;
|
||||
xconf->base.depth_format = PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
||||
xconf->base.stencil_format = PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
||||
mode->depthBits = 24;
|
||||
mode->stencilBits = 8;
|
||||
mode->haveDepthBuffer = TRUE;
|
||||
|
||||
@@ -356,8 +356,8 @@ choose_depth_stencil_format(XMesaDisplay xmdpy, int depth, int stencil)
|
||||
formats[count++] = PIPE_FORMAT_Z24X8_UNORM;
|
||||
}
|
||||
if (depth <= 24 && stencil <= 8) {
|
||||
formats[count++] = PIPE_FORMAT_S8Z24_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_Z24S8_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
||||
formats[count++] = PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
||||
}
|
||||
if (depth <= 32 && stencil == 0) {
|
||||
formats[count++] = PIPE_FORMAT_Z32_UNORM;
|
||||
|
||||
@@ -208,7 +208,7 @@ struct st_framebuffer * st_create_framebuffer(const void *visual,
|
||||
if (stencilFormat == depthFormat)
|
||||
stfb->dsrb = st_new_renderbuffer_fb(stencilFormat);
|
||||
else
|
||||
stfb->dsrb = st_new_renderbuffer_fb(PIPE_FORMAT_Z24S8_UNORM);
|
||||
stfb->dsrb = st_new_renderbuffer_fb(PIPE_FORMAT_Z24_UNORM_S8_USCALED);
|
||||
|
||||
/*### currently we always allocate it but it's possible it's
|
||||
not necessary if EGL_ALPHA_MASK_SIZE was 0
|
||||
|
||||
@@ -96,8 +96,8 @@ stw_pf_depth_stencil[] = {
|
||||
{ PIPE_FORMAT_Z24X8_UNORM, {24, 0} },
|
||||
{ PIPE_FORMAT_Z16_UNORM, {16, 0} },
|
||||
/* combined depth-stencil */
|
||||
{ PIPE_FORMAT_Z24S8_UNORM, {24, 8} },
|
||||
{ PIPE_FORMAT_S8Z24_UNORM, {24, 8} }
|
||||
{ PIPE_FORMAT_Z24_UNORM_S8_USCALED, {24, 8} },
|
||||
{ PIPE_FORMAT_S8_USCALED_Z24_UNORM, {24, 8} }
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ dri2_do_create_buffer(DrawablePtr pDraw, DRI2BufferPtr buffer, unsigned int form
|
||||
}
|
||||
} else {
|
||||
template.format = ms->ds_depth_bits_last ?
|
||||
PIPE_FORMAT_Z24S8_UNORM : PIPE_FORMAT_S8Z24_UNORM;
|
||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED : PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
||||
}
|
||||
template.width0 = pDraw->width;
|
||||
template.height0 = pDraw->height;
|
||||
@@ -439,7 +439,7 @@ xorg_dri2_init(ScreenPtr pScreen)
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
ms->ds_depth_bits_last =
|
||||
ms->screen->is_format_supported(ms->screen, PIPE_FORMAT_Z24S8_UNORM,
|
||||
ms->screen->is_format_supported(ms->screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0);
|
||||
|
||||
|
||||
@@ -735,14 +735,14 @@ draw_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
|
||||
|
||||
/* now pack the stencil (and Z) values in the dest format */
|
||||
switch (pt->texture->format) {
|
||||
case PIPE_FORMAT_S8_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED:
|
||||
{
|
||||
ubyte *dest = stmap + spanY * pt->stride + spanX;
|
||||
assert(usage == PIPE_TRANSFER_WRITE);
|
||||
memcpy(dest, sValues, spanWidth);
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
if (format == GL_DEPTH_STENCIL) {
|
||||
uint *dest = (uint *) (stmap + spanY * pt->stride + spanX*4);
|
||||
GLint k;
|
||||
@@ -760,7 +760,7 @@ draw_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
if (format == GL_DEPTH_STENCIL) {
|
||||
uint *dest = (uint *) (stmap + spanY * pt->stride + spanX*4);
|
||||
GLint k;
|
||||
@@ -913,7 +913,7 @@ copy_stencil_pixels(GLcontext *ctx, GLint srcx, GLint srcy,
|
||||
src = buffer + i * width;
|
||||
|
||||
switch (ptDraw->texture->format) {
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
{
|
||||
uint *dst4 = (uint *) dst;
|
||||
int j;
|
||||
@@ -924,7 +924,7 @@ copy_stencil_pixels(GLcontext *ctx, GLint srcx, GLint srcy,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
{
|
||||
uint *dst4 = (uint *) dst;
|
||||
int j;
|
||||
@@ -935,7 +935,7 @@ copy_stencil_pixels(GLcontext *ctx, GLint srcx, GLint srcy,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED:
|
||||
assert(usage == PIPE_TRANSFER_WRITE);
|
||||
memcpy(dst, src, width);
|
||||
break;
|
||||
|
||||
@@ -255,13 +255,13 @@ st_new_renderbuffer_fb(enum pipe_format format, int samples, boolean sw)
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
strb->Base.InternalFormat = GL_DEPTH_COMPONENT32;
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
strb->Base.InternalFormat = GL_DEPTH24_STENCIL8_EXT;
|
||||
break;
|
||||
case PIPE_FORMAT_S8_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED:
|
||||
strb->Base.InternalFormat = GL_STENCIL_INDEX8_EXT;
|
||||
break;
|
||||
case PIPE_FORMAT_R16G16B16A16_SNORM:
|
||||
|
||||
@@ -103,13 +103,13 @@ st_read_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
|
||||
|
||||
/* get stencil (and Z) values */
|
||||
switch (pt->texture->format) {
|
||||
case PIPE_FORMAT_S8_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED:
|
||||
{
|
||||
const ubyte *src = stmap + srcY * pt->stride;
|
||||
memcpy(sValues, src, width);
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
if (format == GL_DEPTH_STENCIL) {
|
||||
const uint *src = (uint *) (stmap + srcY * pt->stride);
|
||||
const GLfloat scale = 1.0f / (0xffffff);
|
||||
@@ -127,7 +127,7 @@ st_read_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
if (format == GL_DEPTH_STENCIL) {
|
||||
const uint *src = (uint *) (stmap + srcY * pt->stride);
|
||||
const GLfloat scale = 1.0f / (0xffffff);
|
||||
@@ -437,7 +437,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
|
||||
const GLint dstStride = _mesa_image_row_stride(&clippedPacking, width,
|
||||
format, type);
|
||||
|
||||
if (trans->texture->format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
if (trans->texture->format == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
||||
trans->texture->format == PIPE_FORMAT_Z24X8_UNORM) {
|
||||
if (format == GL_DEPTH_COMPONENT) {
|
||||
for (i = 0; i < height; i++) {
|
||||
@@ -469,7 +469,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (trans->texture->format == PIPE_FORMAT_S8Z24_UNORM ||
|
||||
else if (trans->texture->format == PIPE_FORMAT_S8_USCALED_Z24_UNORM ||
|
||||
trans->texture->format == PIPE_FORMAT_X8Z24_UNORM) {
|
||||
if (format == GL_DEPTH_COMPONENT) {
|
||||
for (i = 0; i < height; i++) {
|
||||
|
||||
@@ -281,18 +281,18 @@ void st_init_extensions(struct st_context *st)
|
||||
/* GL_EXT_packed_depth_stencil requires both the ability to render to
|
||||
* a depth/stencil buffer and texture from depth/stencil source.
|
||||
*/
|
||||
if (screen->is_format_supported(screen, PIPE_FORMAT_S8Z24_UNORM,
|
||||
if (screen->is_format_supported(screen, PIPE_FORMAT_S8_USCALED_Z24_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0) &&
|
||||
screen->is_format_supported(screen, PIPE_FORMAT_S8Z24_UNORM,
|
||||
screen->is_format_supported(screen, PIPE_FORMAT_S8_USCALED_Z24_UNORM,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_SAMPLER, 0)) {
|
||||
ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE;
|
||||
}
|
||||
else if (screen->is_format_supported(screen, PIPE_FORMAT_Z24S8_UNORM,
|
||||
else if (screen->is_format_supported(screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0) &&
|
||||
screen->is_format_supported(screen, PIPE_FORMAT_Z24S8_UNORM,
|
||||
screen->is_format_supported(screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
||||
PIPE_TEXTURE_2D,
|
||||
PIPE_TEXTURE_USAGE_SAMPLER, 0)) {
|
||||
ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE;
|
||||
|
||||
@@ -76,8 +76,8 @@ st_format_datatype(enum pipe_format format)
|
||||
format == PIPE_FORMAT_B5G6R5_UNORM) {
|
||||
return GL_UNSIGNED_SHORT;
|
||||
}
|
||||
else if (format == PIPE_FORMAT_Z24S8_UNORM ||
|
||||
format == PIPE_FORMAT_S8Z24_UNORM) {
|
||||
else if (format == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
||||
format == PIPE_FORMAT_S8_USCALED_Z24_UNORM) {
|
||||
return GL_UNSIGNED_INT_24_8;
|
||||
}
|
||||
else {
|
||||
@@ -151,9 +151,9 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat)
|
||||
case MESA_FORMAT_Z32:
|
||||
return PIPE_FORMAT_Z32_UNORM;
|
||||
case MESA_FORMAT_Z24_S8:
|
||||
return PIPE_FORMAT_S8Z24_UNORM;
|
||||
return PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
||||
case MESA_FORMAT_S8_Z24:
|
||||
return PIPE_FORMAT_Z24S8_UNORM;
|
||||
return PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
||||
case MESA_FORMAT_YCBCR:
|
||||
return PIPE_FORMAT_UYVY;
|
||||
#if FEATURE_texture_s3tc
|
||||
@@ -224,7 +224,7 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
|
||||
return MESA_FORMAT_L8;
|
||||
case PIPE_FORMAT_I8_UNORM:
|
||||
return MESA_FORMAT_I8;
|
||||
case PIPE_FORMAT_S8_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED:
|
||||
return MESA_FORMAT_S8;
|
||||
|
||||
case PIPE_FORMAT_R16G16B16A16_SNORM:
|
||||
@@ -234,13 +234,13 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
|
||||
return MESA_FORMAT_Z16;
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
return MESA_FORMAT_Z32;
|
||||
case PIPE_FORMAT_S8Z24_UNORM:
|
||||
case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
|
||||
return MESA_FORMAT_Z24_S8;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
return MESA_FORMAT_Z24_X8;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
return MESA_FORMAT_X8_Z24;
|
||||
case PIPE_FORMAT_Z24S8_UNORM:
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
|
||||
return MESA_FORMAT_S8_Z24;
|
||||
|
||||
case PIPE_FORMAT_UYVY:
|
||||
@@ -393,8 +393,8 @@ default_depth_format(struct pipe_screen *screen,
|
||||
static const enum pipe_format zFormats[] = {
|
||||
PIPE_FORMAT_Z16_UNORM,
|
||||
PIPE_FORMAT_Z32_UNORM,
|
||||
PIPE_FORMAT_Z24S8_UNORM,
|
||||
PIPE_FORMAT_S8Z24_UNORM
|
||||
PIPE_FORMAT_Z24_UNORM_S8_USCALED,
|
||||
PIPE_FORMAT_S8_USCALED_Z24_UNORM
|
||||
};
|
||||
uint i;
|
||||
for (i = 0; i < Elements(zFormats); i++) {
|
||||
@@ -546,10 +546,10 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
|
||||
return PIPE_FORMAT_Z16_UNORM;
|
||||
/* fall-through */
|
||||
case GL_DEPTH_COMPONENT24:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_Z24S8_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_Z24S8_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8Z24_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8Z24_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8_USCALED_Z24_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
||||
/* fall-through */
|
||||
case GL_DEPTH_COMPONENT32:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_Z32_UNORM, target, tex_usage, geom_flags ))
|
||||
@@ -563,20 +563,20 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
|
||||
case GL_STENCIL_INDEX4_EXT:
|
||||
case GL_STENCIL_INDEX8_EXT:
|
||||
case GL_STENCIL_INDEX16_EXT:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_Z24S8_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_Z24S8_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8Z24_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8Z24_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8_USCALED, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8_USCALED;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8_USCALED_Z24_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
||||
return PIPE_FORMAT_NONE;
|
||||
|
||||
case GL_DEPTH_STENCIL_EXT:
|
||||
case GL_DEPTH24_STENCIL8_EXT:
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_Z24S8_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_Z24S8_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8Z24_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8Z24_UNORM;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_Z24_UNORM_S8_USCALED, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_Z24_UNORM_S8_USCALED;
|
||||
if (screen->is_format_supported( screen, PIPE_FORMAT_S8_USCALED_Z24_UNORM, target, tex_usage, geom_flags ))
|
||||
return PIPE_FORMAT_S8_USCALED_Z24_UNORM;
|
||||
return PIPE_FORMAT_NONE;
|
||||
|
||||
case GL_SRGB_EXT:
|
||||
|
||||
Reference in New Issue
Block a user