None of the fetch and store functions implemented. This atleast stops shadowtex from locking the GPU on i915 with the linux-dri-x86 target. It most of it looks okay, with the exception of actually displaying the texture.tags/mesa_20090313
@@ -1207,6 +1207,41 @@ const struct gl_texture_format _mesa_texformat_z24_s8 = { | |||
store_texel_z24_s8 /* StoreTexel */ | |||
}; | |||
const struct gl_texture_format _mesa_texformat_s8_z24 = { | |||
MESA_FORMAT_S8_Z24, /* MesaFormat */ | |||
GL_DEPTH_STENCIL_EXT, /* BaseFormat */ | |||
GL_UNSIGNED_NORMALIZED_ARB, /* DataType */ | |||
0, /* RedBits */ | |||
0, /* GreenBits */ | |||
0, /* BlueBits */ | |||
0, /* AlphaBits */ | |||
0, /* LuminanceBits */ | |||
0, /* IntensityBits */ | |||
0, /* IndexBits */ | |||
24, /* DepthBits */ | |||
8, /* StencilBits */ | |||
4, /* TexelBytes */ | |||
#if 0 | |||
_mesa_texstore_s8_z24, /* StoreTexImageFunc */ | |||
#else | |||
_mesa_texstore_z24_s8, /* StoreTexImageFunc */ | |||
#endif | |||
NULL, /* FetchTexel1D */ | |||
NULL, /* FetchTexel2D */ | |||
NULL, /* FetchTexel3D */ | |||
#if 0 | |||
fetch_texel_1d_f_s8_z24, /* FetchTexel1Df */ | |||
fetch_texel_2d_f_s8_z24, /* FetchTexel2Df */ | |||
fetch_texel_3d_f_s8_z24, /* FetchTexel3Df */ | |||
store_texel_s8_z24 /* StoreTexel */ | |||
#else | |||
fetch_texel_1d_f_z24_s8, /* FetchTexel1Df */ | |||
fetch_texel_2d_f_z24_s8, /* FetchTexel2Df */ | |||
fetch_texel_3d_f_z24_s8, /* FetchTexel3Df */ | |||
store_texel_z24_s8 /* StoreTexel */ | |||
#endif | |||
}; | |||
const struct gl_texture_format _mesa_texformat_z16 = { | |||
MESA_FORMAT_Z16, /* MesaFormat */ | |||
GL_DEPTH_COMPONENT, /* BaseFormat */ |
@@ -84,6 +84,7 @@ enum _format { | |||
MESA_FORMAT_YCBCR, /* YYYY YYYY UorV UorV */ | |||
MESA_FORMAT_YCBCR_REV, /* UorV UorV YYYY YYYY */ | |||
MESA_FORMAT_Z24_S8, /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ SSSS SSSS */ | |||
MESA_FORMAT_S8_Z24, /* SSSS SSSS ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */ | |||
MESA_FORMAT_Z16, /* ZZZZ ZZZZ ZZZZ ZZZZ */ | |||
MESA_FORMAT_Z32, /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */ | |||
/*@}*/ | |||
@@ -209,6 +210,7 @@ extern const struct gl_texture_format _mesa_texformat_l8; | |||
extern const struct gl_texture_format _mesa_texformat_i8; | |||
extern const struct gl_texture_format _mesa_texformat_ci8; | |||
extern const struct gl_texture_format _mesa_texformat_z24_s8; | |||
extern const struct gl_texture_format _mesa_texformat_s8_z24; | |||
extern const struct gl_texture_format _mesa_texformat_z16; | |||
extern const struct gl_texture_format _mesa_texformat_z32; | |||
/*@}*/ |
@@ -274,6 +274,8 @@ st_mesa_format_to_pipe_format(GLuint mesaFormat) | |||
return PIPE_FORMAT_Z32_UNORM; | |||
case MESA_FORMAT_Z24_S8: | |||
return PIPE_FORMAT_Z24S8_UNORM; | |||
case MESA_FORMAT_S8_Z24: | |||
return PIPE_FORMAT_S8Z24_UNORM; | |||
case MESA_FORMAT_YCBCR: | |||
return PIPE_FORMAT_YCBCR; | |||
case MESA_FORMAT_RGB_DXT1: | |||
@@ -559,10 +561,10 @@ translate_gallium_format_to_mesa_format(enum pipe_format format) | |||
return &_mesa_texformat_z16; | |||
case PIPE_FORMAT_Z32_UNORM: | |||
return &_mesa_texformat_z32; | |||
case PIPE_FORMAT_S8Z24_UNORM: | |||
/* XXX fallthrough OK? */ | |||
case PIPE_FORMAT_Z24S8_UNORM: | |||
return &_mesa_texformat_z24_s8; | |||
case PIPE_FORMAT_S8Z24_UNORM: | |||
return &_mesa_texformat_s8_z24; | |||
case PIPE_FORMAT_YCBCR: | |||
return &_mesa_texformat_ycbcr; | |||
case PIPE_FORMAT_YCBCR_REV: |