cell: remove unneeded blend/depth_stencil subclasses
This commit is contained in:
@@ -66,35 +66,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.
|
||||
*/
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user