From 2937d704dcae4451b2baa7d02f97205e73b37c8c Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Wed, 4 Sep 2013 11:15:15 -0700 Subject: [PATCH] i965: Enable AMD_seamless_cubemap_per_texture The change is very small. Do seamless filtering if either the context enable is set or the sampler enable is set. The AMD_seamless_cubemap_per_texture says: "If TEXTURE_CUBE_MAP_SEAMLESS_ARB is emabled (sic) globally or the value of the texture's TEXTURE_CUBE_MAP_SEAMLESS_ARB parameter is TRUE, seamless cube map sampling is enabled..." Signed-off-by: Ian Romanick Reviewed-by: Chris Forbes Reviewed-by: Paul Berry Reviewed-by: Kenneth Graunke --- docs/relnotes/9.3.html | 4 ++++ src/mesa/drivers/dri/i965/brw_wm_sampler_state.c | 2 +- src/mesa/drivers/dri/i965/gen7_sampler_state.c | 2 +- src/mesa/drivers/dri/i965/intel_extensions.c | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/relnotes/9.3.html b/docs/relnotes/9.3.html index 1f57df04ba1..1b34a9a456c 100644 --- a/docs/relnotes/9.3.html +++ b/docs/relnotes/9.3.html @@ -43,6 +43,10 @@ TBD. Note: some of the new features are only available with certain drivers.

+
    +
  • GL_AMD_seamless_cubemap_per_texture on i965.
  • +
+

Bug fixes

diff --git a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c index 828820d533e..4544028342c 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c @@ -282,7 +282,7 @@ static void brw_update_sampler_state(struct brw_context *brw, */ if (texObj->Target == GL_TEXTURE_CUBE_MAP || texObj->Target == GL_TEXTURE_CUBE_MAP_ARRAY) { - if (ctx->Texture.CubeMapSeamless && + if ((ctx->Texture.CubeMapSeamless || gl_sampler->CubeMapSeamless) && (gl_sampler->MinFilter != GL_NEAREST || gl_sampler->MagFilter != GL_NEAREST)) { sampler->ss1.r_wrap_mode = BRW_TEXCOORDMODE_CUBE; diff --git a/src/mesa/drivers/dri/i965/gen7_sampler_state.c b/src/mesa/drivers/dri/i965/gen7_sampler_state.c index 61625022d3d..d796fb50499 100644 --- a/src/mesa/drivers/dri/i965/gen7_sampler_state.c +++ b/src/mesa/drivers/dri/i965/gen7_sampler_state.c @@ -116,7 +116,7 @@ gen7_update_sampler_state(struct brw_context *brw, int unit, int ss_index, */ if (texObj->Target == GL_TEXTURE_CUBE_MAP || texObj->Target == GL_TEXTURE_CUBE_MAP_ARRAY) { - if (ctx->Texture.CubeMapSeamless && + if ((ctx->Texture.CubeMapSeamless || gl_sampler->CubeMapSeamless) && (gl_sampler->MinFilter != GL_NEAREST || gl_sampler->MagFilter != GL_NEAREST)) { sampler->ss3.r_wrap_mode = BRW_TEXCOORDMODE_CUBE; diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c b/src/mesa/drivers/dri/i965/intel_extensions.c index 655467c3cfb..32f7b5c7286 100644 --- a/src/mesa/drivers/dri/i965/intel_extensions.c +++ b/src/mesa/drivers/dri/i965/intel_extensions.c @@ -106,6 +106,7 @@ intelInitExtensions(struct gl_context *ctx) ctx->Extensions.EXT_texture_swizzle = true; ctx->Extensions.EXT_stencil_two_side = true; ctx->Extensions.EXT_vertex_array_bgra = true; + ctx->Extensions.AMD_seamless_cubemap_per_texture = true; ctx->Extensions.APPLE_object_purgeable = true; ctx->Extensions.ATI_envmap_bumpmap = true; ctx->Extensions.ATI_separate_stencil = true; -- 2.30.2