[Mesa-dev] [PATCH 2/4] intel: Make more consistent use of _mesa_is_{user, winsys}_fbo()

Kenneth Graunke kenneth at whitecape.org
Wed Jul 25 10:23:25 PDT 2012


On 07/25/2012 07:20 AM, Paul Berry wrote:
> A lot of code was still differentiating between between winsys and
> user fbos by testing the fbo's name against zero.  This converts
> everything in the i915 and 965 drivers over to use _mesa_is_user_fbo()
> and _mesa_is_winsys_fbo().
> ---
>  src/mesa/drivers/dri/i915/i830_vtbl.c           |    3 ++-
>  src/mesa/drivers/dri/i915/intel_tris.c          |    3 ++-
>  src/mesa/drivers/dri/i965/brw_blorp_blit.cpp    |    5 +++--
>  src/mesa/drivers/dri/intel/intel_blit.c         |    3 ++-
>  src/mesa/drivers/dri/intel/intel_buffers.c      |    2 +-
>  src/mesa/drivers/dri/intel/intel_fbo.c          |    2 +-
>  src/mesa/drivers/dri/intel/intel_pixel_bitmap.c |    5 +++--
>  src/mesa/drivers/dri/intel/intel_pixel_copy.c   |    5 +++--
>  src/mesa/drivers/dri/intel/intel_tex_copy.c     |    3 ++-
>  9 files changed, 19 insertions(+), 12 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i915/i830_vtbl.c b/src/mesa/drivers/dri/i915/i830_vtbl.c
> index 28e95d9..6019852 100644
> --- a/src/mesa/drivers/dri/i915/i830_vtbl.c
> +++ b/src/mesa/drivers/dri/i915/i830_vtbl.c
> @@ -39,6 +39,7 @@
>  #include "swrast_setup/swrast_setup.h"
>  #include "main/renderbuffer.h"
>  #include "main/framebuffer.h"
> +#include "main/fbobject.h"
>  
>  #define FILE_DEBUG_FLAG DEBUG_STATE
>  
> @@ -769,7 +770,7 @@ i830_update_draw_buffer(struct intel_context *intel)
>        /* Get the intel_renderbuffer for the single colorbuffer we're drawing
>         * into.
>         */
> -      if (fb->Name == 0) {
> +      if (_mesa_is_winsys_fbo(fb)) {
>  	 /* drawing to window system buffer */
>  	 if (fb->_ColorDrawBufferIndexes[0] == BUFFER_FRONT_LEFT)
>  	    colorRegions[0] = intel_get_rb_region(fb, BUFFER_FRONT_LEFT);
> diff --git a/src/mesa/drivers/dri/i915/intel_tris.c b/src/mesa/drivers/dri/i915/intel_tris.c
> index cf67d74..5954b24 100644
> --- a/src/mesa/drivers/dri/i915/intel_tris.c
> +++ b/src/mesa/drivers/dri/i915/intel_tris.c
> @@ -38,6 +38,7 @@
>  #include "main/texobj.h"
>  #include "main/state.h"
>  #include "main/dd.h"
> +#include "main/fbobject.h"
>  
>  #include "swrast/swrast.h"
>  #include "swrast_setup/swrast_setup.h"
> @@ -503,7 +504,7 @@ intel_emit_fragcoord(struct intel_context *intel, intelVertexPtr v)
>  
>     fragcoord[0] = vertex_position[0];
>  
> -   if (fb->Name)
> +   if (_mesa_is_user_fbo(fb))
>        fragcoord[1] = vertex_position[1];
>     else
>        fragcoord[1] = fb->Height - vertex_position[1];
> diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> index f8b7e4a..bd15632 100644
> --- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> @@ -22,6 +22,7 @@
>   */
>  
>  #include "main/teximage.h"
> +#include "main/fbobject.h"
>  
>  #include "glsl/ralloc.h"
>  
> @@ -214,13 +215,13 @@ try_blorp_blit(struct intel_context *intel,
>     /* Account for the fact that in the system framebuffer, the origin is at
>      * the lower left.
>      */
> -   if (read_fb->Name == 0) {
> +   if (_mesa_is_winsys_fbo(read_fb)) {
>        GLint tmp = read_fb->Height - srcY0;
>        srcY0 = read_fb->Height - srcY1;
>        srcY1 = tmp;
>        mirror_y = !mirror_y;
>     }
> -   if (draw_fb->Name == 0) {
> +   if (_mesa_is_winsys_fbo(draw_fb)) {
>        GLint tmp = draw_fb->Height - dstY0;
>        dstY0 = draw_fb->Height - dstY1;
>        dstY1 = tmp;
> diff --git a/src/mesa/drivers/dri/intel/intel_blit.c b/src/mesa/drivers/dri/intel/intel_blit.c
> index fd4a86c..36a2c6a 100644
> --- a/src/mesa/drivers/dri/intel/intel_blit.c
> +++ b/src/mesa/drivers/dri/intel/intel_blit.c
> @@ -30,6 +30,7 @@
>  #include "main/context.h"
>  #include "main/enums.h"
>  #include "main/colormac.h"
> +#include "main/fbobject.h"
>  
>  #include "intel_blit.h"
>  #include "intel_buffers.h"
> @@ -248,7 +249,7 @@ intelClearWithBlit(struct gl_context *ctx, GLbitfield mask)
>     }
>  
>     cx = fb->_Xmin;
> -   if (fb->Name == 0)
> +   if (_mesa_is_winsys_fbo(fb))
>        cy = ctx->DrawBuffer->Height - fb->_Ymax;
>     else
>        cy = fb->_Ymin;
> diff --git a/src/mesa/drivers/dri/intel/intel_buffers.c b/src/mesa/drivers/dri/intel/intel_buffers.c
> index 2b02763..9a9a259 100644
> --- a/src/mesa/drivers/dri/intel/intel_buffers.c
> +++ b/src/mesa/drivers/dri/intel/intel_buffers.c
> @@ -70,7 +70,7 @@ void
>  intel_check_front_buffer_rendering(struct intel_context *intel)
>  {
>     const struct gl_framebuffer *fb = intel->ctx.DrawBuffer;
> -   if (fb->Name == 0) {
> +   if (_mesa_is_winsys_fbo(fb)) {
>        /* drawing to window system buffer */
>        if (fb->_NumColorDrawBuffers > 0) {
>           if (fb->_ColorDrawBufferIndexes[0] == BUFFER_FRONT_LEFT) {
> diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
> index ac7d6c1..a53985b 100644
> --- a/src/mesa/drivers/dri/intel/intel_fbo.c
> +++ b/src/mesa/drivers/dri/intel/intel_fbo.c
> @@ -359,7 +359,7 @@ intel_resize_buffers(struct gl_context *ctx, struct gl_framebuffer *fb,
>  
>     fb->Initialized = true; /* XXX remove someday */
>  
> -   if (fb->Name != 0) {
> +   if (_mesa_is_user_fbo(fb)) {
>        return;
>     }
>  
> diff --git a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
> index 769738c..2f57c0e 100644
> --- a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
> +++ b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
> @@ -37,6 +37,7 @@
>  #include "main/state.h"
>  #include "main/texobj.h"
>  #include "main/context.h"
> +#include "main/fbobject.h"
>  #include "swrast/swrast.h"
>  #include "drivers/common/meta.h"
>  
> @@ -158,7 +159,7 @@ static GLuint get_bitmap_rect(GLsizei width, GLsizei height,
>  static INLINE int
>  y_flip(struct gl_framebuffer *fb, int y, int height)
>  {
> -   if (fb->Name != 0)
> +   if (_mesa_is_user_fbo(fb))
>        return y;
>     else
>        return fb->Height - y - height;
> @@ -265,7 +266,7 @@ do_blit_bitmap( struct gl_context *ctx,
>  			     w, h,
>  			     (GLubyte *)stipple,
>  			     8,
> -			     fb->Name == 0 ? true : false) == 0)
> +			     _mesa_is_winsys_fbo(fb) ? true : false) == 0)

While you're changing stuff, please eliminate the stupidity:

<boolean> ? true : false

It's already a boolean :)

With that change,
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

>  	    continue;
>  
>  	 if (!intelEmitImmediateColorExpandBlit(intel,
> diff --git a/src/mesa/drivers/dri/intel/intel_pixel_copy.c b/src/mesa/drivers/dri/intel/intel_pixel_copy.c
> index 18a8075..682a52d 100644
> --- a/src/mesa/drivers/dri/intel/intel_pixel_copy.c
> +++ b/src/mesa/drivers/dri/intel/intel_pixel_copy.c
> @@ -30,6 +30,7 @@
>  #include "main/state.h"
>  #include "main/mtypes.h"
>  #include "main/condrender.h"
> +#include "main/fbobject.h"
>  #include "drivers/common/meta.h"
>  
>  #include "intel_context.h"
> @@ -175,14 +176,14 @@ do_blit_copypixels(struct gl_context * ctx,
>     dsty += srcy - orig_srcy;
>  
>     /* Flip dest Y if it's a window system framebuffer. */
> -   if (fb->Name == 0) {
> +   if (_mesa_is_winsys_fbo(fb)) {
>        /* copypixels to a window system framebuffer */
>        dsty = fb->Height - dsty - height;
>        flip = !flip;
>     }
>  
>     /* Flip source Y if it's a window system framebuffer. */
> -   if (read_fb->Name == 0) {
> +   if (_mesa_is_winsys_fbo(read_fb)) {
>        srcy = read_fb->Height - srcy - height;
>        flip = !flip;
>     }
> diff --git a/src/mesa/drivers/dri/intel/intel_tex_copy.c b/src/mesa/drivers/dri/intel/intel_tex_copy.c
> index 0798cec..6da4ec6 100644
> --- a/src/mesa/drivers/dri/intel/intel_tex_copy.c
> +++ b/src/mesa/drivers/dri/intel/intel_tex_copy.c
> @@ -30,6 +30,7 @@
>  #include "main/image.h"
>  #include "main/teximage.h"
>  #include "main/texstate.h"
> +#include "main/fbobject.h"
>  
>  #include "drivers/common/meta.h"
>  
> @@ -108,7 +109,7 @@ intel_copy_texsubimage(struct intel_context *intel,
>  	 return false;
>        }
>  
> -      if (ctx->ReadBuffer->Name == 0) {
> +      if (_mesa_is_winsys_fbo(ctx->ReadBuffer)) {
>  	 /* Flip vertical orientation for system framebuffers */
>  	 y = ctx->ReadBuffer->Height - (y + height);
>  	 src_pitch = -region->pitch;
> 



More information about the mesa-dev mailing list