diff options
| -rw-r--r-- | src/gallium/drivers/cell/ppu/cell_context.h | 33 | ||||
| -rw-r--r-- | src/gallium/drivers/cell/ppu/cell_gen_fragment.c | 5 | ||||
| -rw-r--r-- | src/gallium/drivers/cell/ppu/cell_pipe_state.c | 44 | ||||
| -rw-r--r-- | src/gallium/drivers/cell/ppu/cell_state_emit.c | 5 | 
4 files changed, 15 insertions, 72 deletions
| diff --git a/src/gallium/drivers/cell/ppu/cell_context.h b/src/gallium/drivers/cell/ppu/cell_context.h index a9ad84bb18..3dc15c9233 100644 --- a/src/gallium/drivers/cell/ppu/cell_context.h +++ b/src/gallium/drivers/cell/ppu/cell_context.h @@ -67,35 +67,6 @@ struct cell_fragment_shader_state  /** - * Cell blend state atom, subclass of pipe_blend_state. - */ -struct cell_blend_state -{ -   struct pipe_blend_state base; - -   /** -    * Generated code to perform alpha blending -    */ -   struct spe_function code; -}; - - -/** - * Cell depth/stencil/alpha state atom, subclass of - * pipe_depth_stencil_alpha_state. - */ -struct cell_depth_stencil_alpha_state -{ -   struct pipe_depth_stencil_alpha_state base; - -   /** -    * Generated code to perform alpha, stencil, and depth testing on the SPE -    */ -   struct spe_function code; -}; - - -/**   * Per-context state, subclass of pipe_context.   */  struct cell_context @@ -104,10 +75,10 @@ struct cell_context     struct cell_winsys *winsys; -   const struct cell_blend_state *blend; +   const struct pipe_blend_state *blend;     const struct pipe_sampler_state *sampler[PIPE_MAX_SAMPLERS];     uint num_samplers; -   const struct cell_depth_stencil_alpha_state   *depth_stencil; +   const struct pipe_depth_stencil_alpha_state *depth_stencil;     const struct pipe_rasterizer_state *rasterizer;     const struct cell_vertex_shader_state *vs;     const struct cell_fragment_shader_state *fs; diff --git a/src/gallium/drivers/cell/ppu/cell_gen_fragment.c b/src/gallium/drivers/cell/ppu/cell_gen_fragment.c index a353756c71..653afc235d 100644 --- a/src/gallium/drivers/cell/ppu/cell_gen_fragment.c +++ b/src/gallium/drivers/cell/ppu/cell_gen_fragment.c @@ -1140,9 +1140,8 @@ gen_colormask(struct spe_function *f,  void  cell_gen_fragment_function(struct cell_context *cell, struct spe_function *f)  { -   const struct pipe_depth_stencil_alpha_state *dsa = -      &cell->depth_stencil->base; -   const struct pipe_blend_state *blend = &cell->blend->base; +   const struct pipe_depth_stencil_alpha_state *dsa = cell->depth_stencil; +   const struct pipe_blend_state *blend = cell->blend;     const struct pipe_blend_color *blend_color = &cell->blend_color;     const enum pipe_format color_format = cell->framebuffer.cbufs[0]->format; diff --git a/src/gallium/drivers/cell/ppu/cell_pipe_state.c b/src/gallium/drivers/cell/ppu/cell_pipe_state.c index ea820aca74..b545d2d697 100644 --- a/src/gallium/drivers/cell/ppu/cell_pipe_state.c +++ b/src/gallium/drivers/cell/ppu/cell_pipe_state.c @@ -37,7 +37,6 @@  #include "cell_flush.h"  #include "cell_state.h"  #include "cell_texture.h" -#include "cell_state_per_fragment.h" @@ -45,13 +44,7 @@ static void *  cell_create_blend_state(struct pipe_context *pipe,                          const struct pipe_blend_state *blend)  { -   struct cell_blend_state *cb = MALLOC(sizeof(struct cell_blend_state)); - -   (void) memcpy(cb, blend, sizeof(*blend)); -#if 0 -   cell_generate_alpha_blend(cb); -#endif -   return cb; +   return mem_dup(blend, sizeof(*blend));  } @@ -62,7 +55,7 @@ cell_bind_blend_state(struct pipe_context *pipe, void *state)     draw_flush(cell->draw); -   cell->blend = (struct cell_blend_state *) state; +   cell->blend = (struct pipe_blend_state *) state;     cell->dirty |= CELL_NEW_BLEND;  } @@ -70,12 +63,7 @@ cell_bind_blend_state(struct pipe_context *pipe, void *state)  static void  cell_delete_blend_state(struct pipe_context *pipe, void *blend)  { -   struct cell_blend_state *cb = (struct cell_blend_state *) blend; - -#if 0 -   spe_release_func(& cb->code); -#endif -   FREE(cb); +   FREE(blend);  } @@ -97,43 +85,29 @@ cell_set_blend_color(struct pipe_context *pipe,  static void *  cell_create_depth_stencil_alpha_state(struct pipe_context *pipe, -                 const struct pipe_depth_stencil_alpha_state *depth_stencil) +                 const struct pipe_depth_stencil_alpha_state *dsa)  { -   struct cell_depth_stencil_alpha_state *cdsa = -       MALLOC(sizeof(struct cell_depth_stencil_alpha_state)); - -   (void) memcpy(cdsa, depth_stencil, sizeof(*depth_stencil)); -#if 0 -   cell_generate_depth_stencil_test(cdsa); -#endif -   return cdsa; +   return mem_dup(dsa, sizeof(*dsa));  }  static void  cell_bind_depth_stencil_alpha_state(struct pipe_context *pipe, -                                    void *depth_stencil) +                                    void *dsa)  {     struct cell_context *cell = cell_context(pipe);     draw_flush(cell->draw); -   cell->depth_stencil = -       (struct cell_depth_stencil_alpha_state *) depth_stencil; +   cell->depth_stencil = (struct pipe_depth_stencil_alpha_state *) dsa;     cell->dirty |= CELL_NEW_DEPTH_STENCIL;  }  static void -cell_delete_depth_stencil_alpha_state(struct pipe_context *pipe, void *depth) +cell_delete_depth_stencil_alpha_state(struct pipe_context *pipe, void *dsa)  { -   struct cell_depth_stencil_alpha_state *cdsa = -       (struct cell_depth_stencil_alpha_state *) depth; - -#if 0 -   spe_release_func(& cdsa->code); -#endif -   FREE(cdsa); +   FREE(dsa);  } diff --git a/src/gallium/drivers/cell/ppu/cell_state_emit.c b/src/gallium/drivers/cell/ppu/cell_state_emit.c index 8a389cd6aa..f35893537b 100644 --- a/src/gallium/drivers/cell/ppu/cell_state_emit.c +++ b/src/gallium/drivers/cell/ppu/cell_state_emit.c @@ -30,7 +30,6 @@  #include "cell_gen_fragment.h"  #include "cell_state.h"  #include "cell_state_emit.h" -#include "cell_state_per_fragment.h"  #include "cell_batch.h"  #include "cell_texture.h"  #include "draw/draw_context.h" @@ -110,8 +109,8 @@ cell_emit_state(struct cell_context *cell)        fops->opcode = CELL_CMD_STATE_FRAGMENT_OPS;        memcpy(&fops->code, spe_code.store,               SPU_MAX_FRAGMENT_OPS_INSTS * SPE_INST_SIZE); -      fops->dsa = cell->depth_stencil->base; -      fops->blend = cell->blend->base; +      fops->dsa = *cell->depth_stencil; +      fops->blend = *cell->blend;        /* free codegen buffer */        spe_release_func(&spe_code); | 
