i965: Add various plumbing for cubemap arrays
V4: Fixed style nits Signed-off-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
2cae9f2d4a
commit
0cda3382a6
|
@ -70,6 +70,10 @@ void
|
|||
brw_miptree_layout(struct intel_context *intel, struct intel_mipmap_tree *mt)
|
||||
{
|
||||
switch (mt->target) {
|
||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||
brw_miptree_layout_texture_array(intel, mt);
|
||||
break;
|
||||
|
||||
case GL_TEXTURE_CUBE_MAP:
|
||||
if (intel->gen >= 5) {
|
||||
/* On Ironlake, cube maps are finally represented as just a series of
|
||||
|
|
|
@ -248,7 +248,8 @@ static void brw_update_sampler_state(struct brw_context *brw,
|
|||
/* Cube-maps on 965 and later must use the same wrap mode for all 3
|
||||
* coordinate dimensions. Futher, only CUBE and CLAMP are valid.
|
||||
*/
|
||||
if (texObj->Target == GL_TEXTURE_CUBE_MAP) {
|
||||
if (texObj->Target == GL_TEXTURE_CUBE_MAP ||
|
||||
texObj->Target == GL_TEXTURE_CUBE_MAP_ARRAY) {
|
||||
if (ctx->Texture.CubeMapSeamless &&
|
||||
(gl_sampler->MinFilter != GL_NEAREST ||
|
||||
gl_sampler->MagFilter != GL_NEAREST)) {
|
||||
|
|
|
@ -65,6 +65,7 @@ translate_tex_target(GLenum target)
|
|||
return BRW_SURFACE_3D;
|
||||
|
||||
case GL_TEXTURE_CUBE_MAP:
|
||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||
return BRW_SURFACE_CUBE;
|
||||
|
||||
default:
|
||||
|
|
|
@ -111,7 +111,8 @@ gen7_update_sampler_state(struct brw_context *brw, int unit, int ss_index,
|
|||
/* Cube-maps on 965 and later must use the same wrap mode for all 3
|
||||
* coordinate dimensions. Futher, only CUBE and CLAMP are valid.
|
||||
*/
|
||||
if (texObj->Target == GL_TEXTURE_CUBE_MAP) {
|
||||
if (texObj->Target == GL_TEXTURE_CUBE_MAP ||
|
||||
texObj->Target == GL_TEXTURE_CUBE_MAP_ARRAY) {
|
||||
if (ctx->Texture.CubeMapSeamless &&
|
||||
(gl_sampler->MinFilter != GL_NEAREST ||
|
||||
gl_sampler->MagFilter != GL_NEAREST)) {
|
||||
|
|
|
@ -328,7 +328,8 @@ gen7_update_texture_surface(struct gl_context *ctx,
|
|||
firstImage->InternalFormat,
|
||||
tObj->DepthMode,
|
||||
sampler->sRGBDecode);
|
||||
if (tObj->Target == GL_TEXTURE_CUBE_MAP) {
|
||||
if (tObj->Target == GL_TEXTURE_CUBE_MAP ||
|
||||
tObj->Target == GL_TEXTURE_CUBE_MAP_ARRAY) {
|
||||
surf->ss0.cube_pos_x = 1;
|
||||
surf->ss0.cube_pos_y = 1;
|
||||
surf->ss0.cube_pos_z = 1;
|
||||
|
|
Loading…
Reference in New Issue