[Mesa-dev] [PATCH 1/4] gallium: add pipe_surface::alpha_one field
Brian Paul
brianp at vmware.com
Fri Jun 24 02:07:51 UTC 2016
If the user requests an RGB drawing surface but we actually create an
RGBA surface, we need it to act as if A=1. For blending, this means
adjusting the blending terms to use 1/0 instead of DST_ALPHA/INV_DST_ALPHA.
Drivers can use this flag to determine when that's needed.
A previous patch I posted last year did this entirely in the state tracker
but it involved making blend state dependent on the framebuffer state.
This approach avoids that dependency.
---
src/gallium/include/pipe/p_state.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h
index 9c69355..8b0c3a2 100644
--- a/src/gallium/include/pipe/p_state.h
+++ b/src/gallium/include/pipe/p_state.h
@@ -387,6 +387,7 @@ struct pipe_surface
unsigned height; /**< logical height in pixels */
unsigned writable:1; /**< writable shader resource */
+ unsigned alpha_one:1; /**< Should an RGBA surface should act like RGB? */
union {
struct {
--
1.9.1
More information about the mesa-dev
mailing list