On Thu, Oct 31, 2013 at 8:55 AM, Courtney Goeltzenleuchter <court...@lunarg.com> wrote: > Add the index parameter to the Scissor, Viewport and > DepthRange driver methods. Update i965 and Gallium > to the change. Index always 0. > --- > src/mesa/drivers/common/driverfuncs.c | 2 +- > src/mesa/drivers/dri/i965/brw_context.c | 4 ++-- > src/mesa/drivers/dri/i965/brw_context.h | 2 +-
git grep "ctx->Driver.Scissor" Shows that some code in src/mesa/drivers/dri/(i915|nouveau|radeon) needs to be changed too. -Jordan > src/mesa/drivers/dri/swrast/swrast.c | 3 ++- > src/mesa/main/dd.h | 10 +++++++--- > src/mesa/main/scissor.c | 2 +- > src/mesa/main/viewport.c | 4 ++-- > src/mesa/state_tracker/st_cb_viewport.c | 3 ++- > 8 files changed, 18 insertions(+), 12 deletions(-) > > diff --git a/src/mesa/drivers/common/driverfuncs.c > b/src/mesa/drivers/common/driverfuncs.c > index 5faa98a..e45dc0e 100644 > --- a/src/mesa/drivers/common/driverfuncs.c > +++ b/src/mesa/drivers/common/driverfuncs.c > @@ -299,7 +299,7 @@ _mesa_init_driver_state(struct gl_context *ctx) > ctx->Driver.LogicOpcode(ctx, ctx->Color.LogicOp); > ctx->Driver.PointSize(ctx, ctx->Point.Size); > ctx->Driver.PolygonStipple(ctx, (const GLubyte *) ctx->PolygonStipple); > - ctx->Driver.Scissor(ctx, ctx->Scissor.X, ctx->Scissor.Y, > + ctx->Driver.Scissor(ctx, 0, ctx->Scissor.X, ctx->Scissor.Y, > ctx->Scissor.Width, ctx->Scissor.Height); > ctx->Driver.ShadeModel(ctx, ctx->Light.ShadeModel); > ctx->Driver.StencilFuncSeparate(ctx, GL_FRONT, > diff --git a/src/mesa/drivers/dri/i965/brw_context.c > b/src/mesa/drivers/dri/i965/brw_context.c > index 3880e18..5b4d662d 100644 > --- a/src/mesa/drivers/dri/i965/brw_context.c > +++ b/src/mesa/drivers/dri/i965/brw_context.c > @@ -125,13 +125,13 @@ intelGetString(struct gl_context * ctx, GLenum name) > } > > static void > -intel_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei > h) > +intel_viewport(struct gl_context *ctx, GLuint idx, GLint x, GLint y, GLsizei > w, GLsizei h) > { > struct brw_context *brw = brw_context(ctx); > __DRIcontext *driContext = brw->driContext; > > if (brw->saved_viewport) > - brw->saved_viewport(ctx, x, y, w, h); > + brw->saved_viewport(ctx, idx, x, y, w, h); > > if (_mesa_is_winsys_fbo(ctx->DrawBuffer)) { > dri2InvalidateDrawable(driContext->driDrawablePriv); > diff --git a/src/mesa/drivers/dri/i965/brw_context.h > b/src/mesa/drivers/dri/i965/brw_context.h > index 3be2138..c261ae8 100644 > --- a/src/mesa/drivers/dri/i965/brw_context.h > +++ b/src/mesa/drivers/dri/i965/brw_context.h > @@ -1411,7 +1411,7 @@ struct brw_context > > __DRIcontext *driContext; > struct intel_screen *intelScreen; > - void (*saved_viewport)(struct gl_context *ctx, > + void (*saved_viewport)(struct gl_context *ctx, GLuint idx, > GLint x, GLint y, GLsizei width, GLsizei height); > }; > > diff --git a/src/mesa/drivers/dri/swrast/swrast.c > b/src/mesa/drivers/dri/swrast/swrast.c > index bfa2efd..ffb1fa0 100644 > --- a/src/mesa/drivers/dri/swrast/swrast.c > +++ b/src/mesa/drivers/dri/swrast/swrast.c > @@ -618,7 +618,8 @@ update_state( struct gl_context *ctx, GLuint new_state ) > } > > static void > -viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h) > +viewport(struct gl_context *ctx, GLuint idx, > + GLint x, GLint y, GLsizei w, GLsizei h) > { > struct gl_framebuffer *draw = ctx->WinSysDrawBuffer; > struct gl_framebuffer *read = ctx->WinSysReadBuffer; > diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h > index 5011921..7f57a39 100644 > --- a/src/mesa/main/dd.h > +++ b/src/mesa/main/dd.h > @@ -479,7 +479,8 @@ struct dd_function_table { > /** Enable or disable writing into the depth buffer */ > void (*DepthMask)(struct gl_context *ctx, GLboolean flag); > /** Specify mapping of depth values from NDC to window coordinates */ > - void (*DepthRange)(struct gl_context *ctx, GLclampd nearval, GLclampd > farval); > + void (*DepthRange)(struct gl_context *ctx, GLuint idx, > + GLclampd nearval, GLclampd farval); > /** Specify the current buffer for writing */ > void (*DrawBuffer)( struct gl_context *ctx, GLenum buffer ); > /** Specify the buffers for writing for fragment programs*/ > @@ -519,7 +520,9 @@ struct dd_function_table { > /** Set rasterization mode */ > void (*RenderMode)(struct gl_context *ctx, GLenum mode ); > /** Define the scissor box */ > - void (*Scissor)(struct gl_context *ctx, GLint x, GLint y, GLsizei w, > GLsizei h); > + void (*Scissor)(struct gl_context *ctx, GLuint idx, > + GLint x, GLint y, > + GLsizei width, GLsizei height); > /** Select flat or smooth shading */ > void (*ShadeModel)(struct gl_context *ctx, GLenum mode); > /** OpenGL 2.0 two-sided StencilFunc */ > @@ -541,7 +544,8 @@ struct dd_function_table { > struct gl_texture_object *texObj, > GLenum pname, const GLfloat *params); > /** Set the viewport */ > - void (*Viewport)(struct gl_context *ctx, GLint x, GLint y, GLsizei w, > GLsizei h); > + void (*Viewport)(struct gl_context *ctx, GLuint idx, > + GLint x, GLint y, GLsizei w, GLsizei h); > /*@}*/ > > > diff --git a/src/mesa/main/scissor.c b/src/mesa/main/scissor.c > index 0eddaa6..4eb6337 100644 > --- a/src/mesa/main/scissor.c > +++ b/src/mesa/main/scissor.c > @@ -79,7 +79,7 @@ _mesa_set_scissor(struct gl_context *ctx, > ctx->Scissor.Height = height; > > if (ctx->Driver.Scissor) > - ctx->Driver.Scissor( ctx, x, y, width, height ); > + ctx->Driver.Scissor( ctx, 0, x, y, width, height ); > } > > > diff --git a/src/mesa/main/viewport.c b/src/mesa/main/viewport.c > index 91578ba..5da10ba 100644 > --- a/src/mesa/main/viewport.c > +++ b/src/mesa/main/viewport.c > @@ -99,7 +99,7 @@ _mesa_set_viewport(struct gl_context *ctx, GLint x, GLint y, > /* Many drivers will use this call to check for window size changes > * and reallocate the z/stencil/accum/etc buffers if needed. > */ > - ctx->Driver.Viewport(ctx, x, y, width, height); > + ctx->Driver.Viewport(ctx, 0, x, y, width, height); > } > } > > @@ -143,7 +143,7 @@ _mesa_DepthRange(GLclampd nearval, GLclampd farval) > #endif > > if (ctx->Driver.DepthRange) { > - ctx->Driver.DepthRange(ctx, nearval, farval); > + ctx->Driver.DepthRange(ctx, 0, nearval, farval); > } > } > > diff --git a/src/mesa/state_tracker/st_cb_viewport.c > b/src/mesa/state_tracker/st_cb_viewport.c > index d654ed6..d48127e 100644 > --- a/src/mesa/state_tracker/st_cb_viewport.c > +++ b/src/mesa/state_tracker/st_cb_viewport.c > @@ -48,7 +48,8 @@ st_ws_framebuffer(struct gl_framebuffer *fb) > return NULL; > } > > -static void st_viewport(struct gl_context * ctx, GLint x, GLint y, > +static void st_viewport(struct gl_context * ctx, GLuint idx, > + GLint x, GLint y, > GLsizei width, GLsizei height) > { > struct st_context *st = ctx->st; > -- > 1.8.1.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev