intel: Use accessor for stencil reference values
NOTE: This is a candidate for stable branches. Signed-off-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Paul Berry <stereotype441@gmail.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
#include "main/fbobject.h"
|
||||
#include "main/dd.h"
|
||||
#include "main/state.h"
|
||||
#include "main/stencil.h"
|
||||
#include "tnl/tnl.h"
|
||||
#include "tnl/t_context.h"
|
||||
|
||||
@@ -63,14 +64,14 @@ i915_update_stencil(struct gl_context * ctx)
|
||||
*/
|
||||
/* _NEW_POLYGON | _NEW_STENCIL */
|
||||
if (ctx->Polygon.FrontFace == GL_CW) {
|
||||
front_ref = ctx->Stencil.Ref[0];
|
||||
front_ref = _mesa_get_stencil_ref(ctx, 0);
|
||||
front_mask = ctx->Stencil.ValueMask[0];
|
||||
front_writemask = ctx->Stencil.WriteMask[0];
|
||||
front_func = ctx->Stencil.Function[0];
|
||||
front_fail = ctx->Stencil.FailFunc[0];
|
||||
front_pass_z_fail = ctx->Stencil.ZFailFunc[0];
|
||||
front_pass_z_pass = ctx->Stencil.ZPassFunc[0];
|
||||
back_ref = ctx->Stencil.Ref[ctx->Stencil._BackFace];
|
||||
back_ref = _mesa_get_stencil_ref(ctx, ctx->Stencil._BackFace);
|
||||
back_mask = ctx->Stencil.ValueMask[ctx->Stencil._BackFace];
|
||||
back_writemask = ctx->Stencil.WriteMask[ctx->Stencil._BackFace];
|
||||
back_func = ctx->Stencil.Function[ctx->Stencil._BackFace];
|
||||
@@ -78,14 +79,14 @@ i915_update_stencil(struct gl_context * ctx)
|
||||
back_pass_z_fail = ctx->Stencil.ZFailFunc[ctx->Stencil._BackFace];
|
||||
back_pass_z_pass = ctx->Stencil.ZPassFunc[ctx->Stencil._BackFace];
|
||||
} else {
|
||||
front_ref = ctx->Stencil.Ref[ctx->Stencil._BackFace];
|
||||
front_ref = _mesa_get_stencil_ref(ctx, ctx->Stencil._BackFace);
|
||||
front_mask = ctx->Stencil.ValueMask[ctx->Stencil._BackFace];
|
||||
front_writemask = ctx->Stencil.WriteMask[ctx->Stencil._BackFace];
|
||||
front_func = ctx->Stencil.Function[ctx->Stencil._BackFace];
|
||||
front_fail = ctx->Stencil.FailFunc[ctx->Stencil._BackFace];
|
||||
front_pass_z_fail = ctx->Stencil.ZFailFunc[ctx->Stencil._BackFace];
|
||||
front_pass_z_pass = ctx->Stencil.ZPassFunc[ctx->Stencil._BackFace];
|
||||
back_ref = ctx->Stencil.Ref[0];
|
||||
back_ref = _mesa_get_stencil_ref(ctx, 0);
|
||||
back_mask = ctx->Stencil.ValueMask[0];
|
||||
back_writemask = ctx->Stencil.WriteMask[0];
|
||||
back_func = ctx->Stencil.Function[0];
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "brw_defines.h"
|
||||
#include "brw_util.h"
|
||||
#include "main/macros.h"
|
||||
#include "main/stencil.h"
|
||||
#include "intel_batchbuffer.h"
|
||||
|
||||
static void
|
||||
@@ -116,7 +117,7 @@ static void upload_cc_unit(struct brw_context *brw)
|
||||
intel_translate_stencil_op(ctx->Stencil.ZFailFunc[0]);
|
||||
cc->cc0.stencil_pass_depth_pass_op =
|
||||
intel_translate_stencil_op(ctx->Stencil.ZPassFunc[0]);
|
||||
cc->cc1.stencil_ref = ctx->Stencil.Ref[0];
|
||||
cc->cc1.stencil_ref = _mesa_get_stencil_ref(ctx, 0);
|
||||
cc->cc1.stencil_write_mask = ctx->Stencil.WriteMask[0];
|
||||
cc->cc1.stencil_test_mask = ctx->Stencil.ValueMask[0];
|
||||
|
||||
@@ -130,7 +131,7 @@ static void upload_cc_unit(struct brw_context *brw)
|
||||
intel_translate_stencil_op(ctx->Stencil.ZFailFunc[back]);
|
||||
cc->cc0.bf_stencil_pass_depth_pass_op =
|
||||
intel_translate_stencil_op(ctx->Stencil.ZPassFunc[back]);
|
||||
cc->cc1.bf_stencil_ref = ctx->Stencil.Ref[back];
|
||||
cc->cc1.bf_stencil_ref = _mesa_get_stencil_ref(ctx, back);
|
||||
cc->cc2.bf_stencil_write_mask = ctx->Stencil.WriteMask[back];
|
||||
cc->cc2.bf_stencil_test_mask = ctx->Stencil.ValueMask[back];
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "main/macros.h"
|
||||
#include "main/enums.h"
|
||||
#include "main/glformats.h"
|
||||
#include "main/stencil.h"
|
||||
|
||||
static void
|
||||
gen6_upload_blend_state(struct brw_context *brw)
|
||||
@@ -251,8 +252,8 @@ gen6_upload_color_calc_state(struct brw_context *brw)
|
||||
UNCLAMPED_FLOAT_TO_UBYTE(cc->cc1.alpha_ref_fi.ui, ctx->Color.AlphaRef);
|
||||
|
||||
/* _NEW_STENCIL */
|
||||
cc->cc0.stencil_ref = ctx->Stencil.Ref[0];
|
||||
cc->cc0.bf_stencil_ref = ctx->Stencil.Ref[ctx->Stencil._BackFace];
|
||||
cc->cc0.stencil_ref = _mesa_get_stencil_ref(ctx, 0);
|
||||
cc->cc0.bf_stencil_ref = _mesa_get_stencil_ref(ctx, ctx->Stencil._BackFace);
|
||||
|
||||
/* _NEW_COLOR */
|
||||
cc->constant_r = ctx->Color.BlendColorUnclamped[0];
|
||||
|
||||
Reference in New Issue
Block a user