Mesa (master): i965: Enable AMD_seamless_cubemap_per_texture

Ian Romanick idr at kemper.freedesktop.org
Sun Sep 8 14:54:51 UTC 2013


Module: Mesa
Branch: master
Commit: 2937d704dcae4451b2baa7d02f97205e73b37c8c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2937d704dcae4451b2baa7d02f97205e73b37c8c

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Wed Sep  4 11:15:15 2013 -0700

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 <ian.d.romanick at intel.com>
Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>
Reviewed-by: Paul Berry <stereotype441 at gmail.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 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 1f57df0..1b34a9a 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.
 </p>
 
+<ul>
+<li>GL_AMD_seamless_cubemap_per_texture on i965.</li>
+</ul>
+
 
 <h2>Bug fixes</h2>
 
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 828820d..4544028 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 6162502..d796fb5 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 655467c..32f7b5c 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;




More information about the mesa-commit mailing list