Module: Mesa Branch: master Commit: 04eb8b85ea2eb5865d4f42e9e98c7400cd8344f5 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=04eb8b85ea2eb5865d4f42e9e98c7400cd8344f5
Author: Christoph Bumiller <[email protected]> Date: Sat May 17 01:20:14 2014 +0200 r600g: check for PIPE_BIND_BLENDABLE in is_format_supported v2: added !util_format_is_depth_or_stencil(format) Signed-off-by: Marek Olšák <[email protected]> --- src/gallium/drivers/r600/evergreen_state.c | 9 +++++++++ src/gallium/drivers/r600/r600_state.c | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c index 7b1a44b..5824fe0 100644 --- a/src/gallium/drivers/r600/evergreen_state.c +++ b/src/gallium/drivers/r600/evergreen_state.c @@ -227,6 +227,11 @@ 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, @@ -295,6 +300,10 @@ 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 a0ba131..31d7bd0 100644 --- a/src/gallium/drivers/r600/r600_state.c +++ b/src/gallium/drivers/r600/r600_state.c @@ -157,6 +157,11 @@ 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, @@ -235,6 +240,10 @@ 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; } _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
