aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/i965/brw_pipe_depth.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/i965/brw_pipe_depth.c')
-rw-r--r--src/gallium/drivers/i965/brw_pipe_depth.c187
1 files changed, 0 insertions, 187 deletions
diff --git a/src/gallium/drivers/i965/brw_pipe_depth.c b/src/gallium/drivers/i965/brw_pipe_depth.c
deleted file mode 100644
index 31c2c343d89..00000000000
--- a/src/gallium/drivers/i965/brw_pipe_depth.c
+++ /dev/null
@@ -1,187 +0,0 @@
-
-#include "util/u_math.h"
-#include "util/u_memory.h"
-
-#include "brw_context.h"
-#include "brw_defines.h"
-
-/* XXX: Fixme - include this to get IZ_ defines
- */
-#include "brw_wm.h"
-
-static unsigned brw_translate_compare_func(unsigned func)
-{
- switch (func) {
- case PIPE_FUNC_NEVER:
- return BRW_COMPAREFUNCTION_NEVER;
- case PIPE_FUNC_LESS:
- return BRW_COMPAREFUNCTION_LESS;
- case PIPE_FUNC_LEQUAL:
- return BRW_COMPAREFUNCTION_LEQUAL;
- case PIPE_FUNC_GREATER:
- return BRW_COMPAREFUNCTION_GREATER;
- case PIPE_FUNC_GEQUAL:
- return BRW_COMPAREFUNCTION_GEQUAL;
- case PIPE_FUNC_NOTEQUAL:
- return BRW_COMPAREFUNCTION_NOTEQUAL;
- case PIPE_FUNC_EQUAL:
- return BRW_COMPAREFUNCTION_EQUAL;
- case PIPE_FUNC_ALWAYS:
- return BRW_COMPAREFUNCTION_ALWAYS;
- default:
- assert(0);
- return BRW_COMPAREFUNCTION_ALWAYS;
- }
-}
-
-static unsigned translate_stencil_op(unsigned op)
-{
- switch (op) {
- case PIPE_STENCIL_OP_KEEP:
- return BRW_STENCILOP_KEEP;
- case PIPE_STENCIL_OP_ZERO:
- return BRW_STENCILOP_ZERO;
- case PIPE_STENCIL_OP_REPLACE:
- return BRW_STENCILOP_REPLACE;
- case PIPE_STENCIL_OP_INCR:
- return BRW_STENCILOP_INCRSAT;
- case PIPE_STENCIL_OP_DECR:
- return BRW_STENCILOP_DECRSAT;
- case PIPE_STENCIL_OP_INCR_WRAP:
- return BRW_STENCILOP_INCR;
- case PIPE_STENCIL_OP_DECR_WRAP:
- return BRW_STENCILOP_DECR;
- case PIPE_STENCIL_OP_INVERT:
- return BRW_STENCILOP_INVERT;
- default:
- assert(0);
- return BRW_STENCILOP_ZERO;
- }
-}
-
-static void create_bcc_state( struct brw_depth_stencil_state *zstencil,
- const struct pipe_depth_stencil_alpha_state *templ )
-{
- if (templ->stencil[0].enabled) {
- zstencil->cc0.stencil_enable = 1;
- zstencil->cc0.stencil_func =
- brw_translate_compare_func(templ->stencil[0].func);
- zstencil->cc0.stencil_fail_op =
- translate_stencil_op(templ->stencil[0].fail_op);
- zstencil->cc0.stencil_pass_depth_fail_op =
- translate_stencil_op(templ->stencil[0].zfail_op);
- zstencil->cc0.stencil_pass_depth_pass_op =
- translate_stencil_op(templ->stencil[0].zpass_op);
- zstencil->cc1.stencil_write_mask = templ->stencil[0].writemask;
- zstencil->cc1.stencil_test_mask = templ->stencil[0].valuemask;
-
- if (templ->stencil[1].enabled) {
- zstencil->cc0.bf_stencil_enable = 1;
- zstencil->cc0.bf_stencil_func =
- brw_translate_compare_func(templ->stencil[1].func);
- zstencil->cc0.bf_stencil_fail_op =
- translate_stencil_op(templ->stencil[1].fail_op);
- zstencil->cc0.bf_stencil_pass_depth_fail_op =
- translate_stencil_op(templ->stencil[1].zfail_op);
- zstencil->cc0.bf_stencil_pass_depth_pass_op =
- translate_stencil_op(templ->stencil[1].zpass_op);
- zstencil->cc2.bf_stencil_write_mask = templ->stencil[1].writemask;
- zstencil->cc2.bf_stencil_test_mask = templ->stencil[1].valuemask;
- }
-
- zstencil->cc0.stencil_write_enable = (zstencil->cc1.stencil_write_mask ||
- zstencil->cc2.bf_stencil_write_mask);
- }
-
-
- if (templ->alpha.enabled) {
- zstencil->cc3.alpha_test = 1;
- zstencil->cc3.alpha_test_func = brw_translate_compare_func(templ->alpha.func);
- zstencil->cc3.alpha_test_format = BRW_ALPHATEST_FORMAT_UNORM8;
- zstencil->cc7.alpha_ref.ub[0] = float_to_ubyte(templ->alpha.ref_value);
- }
-
- if (templ->depth.enabled) {
- zstencil->cc2.depth_test = 1;
- zstencil->cc2.depth_test_function = brw_translate_compare_func(templ->depth.func);
- zstencil->cc2.depth_write_enable = templ->depth.writemask;
- }
-}
-
-static void create_wm_iz_state( struct brw_depth_stencil_state *zstencil )
-{
- if (zstencil->cc3.alpha_test)
- zstencil->iz_lookup |= IZ_PS_KILL_ALPHATEST_BIT;
-
- if (zstencil->cc2.depth_test)
- zstencil->iz_lookup |= IZ_DEPTH_TEST_ENABLE_BIT;
-
- if (zstencil->cc2.depth_write_enable)
- zstencil->iz_lookup |= IZ_DEPTH_WRITE_ENABLE_BIT;
-
- if (zstencil->cc0.stencil_enable)
- zstencil->iz_lookup |= IZ_STENCIL_TEST_ENABLE_BIT;
-
- if (zstencil->cc0.stencil_write_enable)
- zstencil->iz_lookup |= IZ_STENCIL_WRITE_ENABLE_BIT;
-
-}
-
-
-static void *
-brw_create_depth_stencil_state( struct pipe_context *pipe,
- const struct pipe_depth_stencil_alpha_state *templ )
-{
- struct brw_depth_stencil_state *zstencil = CALLOC_STRUCT(brw_depth_stencil_state);
-
- create_bcc_state( zstencil, templ );
- create_wm_iz_state( zstencil );
-
- return (void *)zstencil;
-}
-
-
-static void brw_bind_depth_stencil_state(struct pipe_context *pipe,
- void *cso)
-{
- struct brw_context *brw = brw_context(pipe);
- brw->curr.zstencil = (const struct brw_depth_stencil_state *)cso;
- brw->state.dirty.mesa |= PIPE_NEW_DEPTH_STENCIL_ALPHA;
-}
-
-static void brw_delete_depth_stencil_state(struct pipe_context *pipe,
- void *cso)
-{
- struct brw_context *brw = brw_context(pipe);
- assert((const void *)cso != (const void *)brw->curr.zstencil);
- FREE(cso);
-}
-
-static void brw_set_stencil_ref(struct pipe_context *pipe,
- const struct pipe_stencil_ref *stencil_ref)
-{
- struct brw_context *brw = brw_context(pipe);
- brw->curr.cc1_stencil_ref.stencil_ref = stencil_ref->ref_value[0];
- brw->curr.cc1_stencil_ref.bf_stencil_ref = stencil_ref->ref_value[1];
-
- brw->state.dirty.mesa |= PIPE_NEW_DEPTH_STENCIL_ALPHA;
-}
-
-static void
-brw_set_sample_mask(struct pipe_context *pipe,
- unsigned sample_mask)
-{
-}
-
-void brw_pipe_depth_stencil_init( struct brw_context *brw )
-{
- brw->base.set_stencil_ref = brw_set_stencil_ref;
- brw->base.create_depth_stencil_alpha_state = brw_create_depth_stencil_state;
- brw->base.bind_depth_stencil_alpha_state = brw_bind_depth_stencil_state;
- brw->base.delete_depth_stencil_alpha_state = brw_delete_depth_stencil_state;
- brw->base.set_sample_mask = brw_set_sample_mask;
-}
-
-void brw_pipe_depth_stencil_cleanup( struct brw_context *brw )
-{
-}