For what formats is this really needed? I think that usually if you have a rgb surface, the corresponding rgbx format should be used instead of rgba (which implicitly has the alpha == 1 property for blending). But maybe some formats are missing...
Roland Am 24.06.2016 um 04:07 schrieb Brian Paul: > 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 { > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev