From: Marek Olšák <marek.ol...@amd.com>

---
 src/gallium/drivers/r600/evergreen_state.c | 15 +++++----------
 src/gallium/drivers/r600/r600_state.c      | 15 +++++----------
 2 files changed, 10 insertions(+), 20 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_state.c 
b/src/gallium/drivers/r600/evergreen_state.c
index 30cf32b..34a275c 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -227,11 +227,6 @@ static bool r600_is_zs_format_supported(enum pipe_format 
format)
        return r600_translate_dbformat(format) != ~0U;
 }
 
-static inline bool r600_is_blending_supported(enum pipe_format format)
-{
-       return !(util_format_is_pure_integer(format) || 
util_format_is_depth_or_stencil(format));
-}
-
 boolean evergreen_is_format_supported(struct pipe_screen *screen,
                                      enum pipe_format format,
                                      enum pipe_texture_target target,
@@ -276,13 +271,17 @@ boolean evergreen_is_format_supported(struct pipe_screen 
*screen,
        if ((usage & (PIPE_BIND_RENDER_TARGET |
                      PIPE_BIND_DISPLAY_TARGET |
                      PIPE_BIND_SCANOUT |
-                     PIPE_BIND_SHARED)) &&
+                     PIPE_BIND_SHARED |
+                     PIPE_BIND_BLENDABLE)) &&
            r600_is_colorbuffer_format_supported(rscreen->b.chip_class, 
format)) {
                retval |= usage &
                          (PIPE_BIND_RENDER_TARGET |
                           PIPE_BIND_DISPLAY_TARGET |
                           PIPE_BIND_SCANOUT |
                           PIPE_BIND_SHARED);
+               if (!util_format_is_pure_integer(format) &&
+                   !util_format_is_depth_or_stencil(format))
+                       retval |= usage & PIPE_BIND_BLENDABLE;
        }
 
        if ((usage & PIPE_BIND_DEPTH_STENCIL) &&
@@ -300,10 +299,6 @@ boolean evergreen_is_format_supported(struct pipe_screen 
*screen,
        if (usage & PIPE_BIND_TRANSFER_WRITE)
                retval |= PIPE_BIND_TRANSFER_WRITE;
 
-       if ((usage & PIPE_BIND_BLENDABLE) &&
-           r600_is_blending_supported(format))
-               retval |= PIPE_BIND_BLENDABLE;
-
        return retval == usage;
 }
 
diff --git a/src/gallium/drivers/r600/r600_state.c 
b/src/gallium/drivers/r600/r600_state.c
index 410b66b..36f7750 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -157,11 +157,6 @@ static bool r600_is_zs_format_supported(enum pipe_format 
format)
        return r600_translate_dbformat(format) != ~0U;
 }
 
-static inline bool r600_is_blending_supported(enum pipe_format format)
-{
-       return !(util_format_is_pure_integer(format) || 
util_format_is_depth_or_stencil(format));
-}
-
 boolean r600_is_format_supported(struct pipe_screen *screen,
                                 enum pipe_format format,
                                 enum pipe_texture_target target,
@@ -216,13 +211,17 @@ boolean r600_is_format_supported(struct pipe_screen 
*screen,
        if ((usage & (PIPE_BIND_RENDER_TARGET |
                      PIPE_BIND_DISPLAY_TARGET |
                      PIPE_BIND_SCANOUT |
-                     PIPE_BIND_SHARED)) &&
+                     PIPE_BIND_SHARED |
+                     PIPE_BIND_BLENDABLE)) &&
            r600_is_colorbuffer_format_supported(rscreen->b.chip_class, 
format)) {
                retval |= usage &
                          (PIPE_BIND_RENDER_TARGET |
                           PIPE_BIND_DISPLAY_TARGET |
                           PIPE_BIND_SCANOUT |
                           PIPE_BIND_SHARED);
+               if (!util_format_is_pure_integer(format) &&
+                   !util_format_is_depth_or_stencil(format))
+                       retval |= usage & PIPE_BIND_BLENDABLE;
        }
 
        if ((usage & PIPE_BIND_DEPTH_STENCIL) &&
@@ -240,10 +239,6 @@ boolean r600_is_format_supported(struct pipe_screen 
*screen,
        if (usage & PIPE_BIND_TRANSFER_WRITE)
                retval |= PIPE_BIND_TRANSFER_WRITE;
 
-       if ((usage & PIPE_BIND_BLENDABLE) &&
-           r600_is_blending_supported(format))
-               retval |= PIPE_BIND_BLENDABLE;
-
        return retval == usage;
 }
 
-- 
1.9.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to