summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2015-07-05 16:34:59 +0200
committerMarek Olšák <[email protected]>2015-07-23 00:59:21 +0200
commit4ef7d93a941257b18506eae056631e8f4a11f893 (patch)
tree1df336cd0c8595ce6e61937e71888b56259df983
parentb7492a1f45866a01b00263f9e252ddc3835304e9 (diff)
cso: remove clip state handling
There is no need for this. v2: handle redundant clip state changes in st/mesa
-rw-r--r--src/gallium/auxiliary/cso_cache/cso_context.c44
-rw-r--r--src/gallium/auxiliary/cso_cache/cso_context.h13
-rw-r--r--src/mesa/state_tracker/st_atom_clip.c7
3 files changed, 5 insertions, 59 deletions
diff --git a/src/gallium/auxiliary/cso_cache/cso_context.c b/src/gallium/auxiliary/cso_cache/cso_context.c
index 46055a099dc..9ee5bdcc942 100644
--- a/src/gallium/auxiliary/cso_cache/cso_context.c
+++ b/src/gallium/auxiliary/cso_cache/cso_context.c
@@ -111,9 +111,6 @@ struct cso_context {
uint render_condition_mode, render_condition_mode_saved;
boolean render_condition_cond, render_condition_cond_saved;
- struct pipe_clip_state clip;
- struct pipe_clip_state clip_saved;
-
struct pipe_framebuffer_state fb, fb_saved;
struct pipe_viewport_state vp, vp_saved;
struct pipe_blend_color blend_color;
@@ -910,47 +907,6 @@ void cso_restore_tesseval_shader(struct cso_context *ctx)
ctx->tesseval_shader_saved = NULL;
}
-/* clip state */
-
-static inline void
-clip_state_cpy(struct pipe_clip_state *dst,
- const struct pipe_clip_state *src)
-{
- memcpy(dst->ucp, src->ucp, sizeof(dst->ucp));
-}
-
-static inline int
-clip_state_cmp(const struct pipe_clip_state *a,
- const struct pipe_clip_state *b)
-{
- return memcmp(a->ucp, b->ucp, sizeof(a->ucp));
-}
-
-void
-cso_set_clip(struct cso_context *ctx,
- const struct pipe_clip_state *clip)
-{
- if (clip_state_cmp(&ctx->clip, clip)) {
- clip_state_cpy(&ctx->clip, clip);
- ctx->pipe->set_clip_state(ctx->pipe, clip);
- }
-}
-
-void
-cso_save_clip(struct cso_context *ctx)
-{
- clip_state_cpy(&ctx->clip_saved, &ctx->clip);
-}
-
-void
-cso_restore_clip(struct cso_context *ctx)
-{
- if (clip_state_cmp(&ctx->clip, &ctx->clip_saved)) {
- clip_state_cpy(&ctx->clip, &ctx->clip_saved);
- ctx->pipe->set_clip_state(ctx->pipe, &ctx->clip_saved);
- }
-}
-
enum pipe_error
cso_set_vertex_elements(struct cso_context *ctx,
unsigned count,
diff --git a/src/gallium/auxiliary/cso_cache/cso_context.h b/src/gallium/auxiliary/cso_cache/cso_context.h
index c9a422698a2..3bee4298802 100644
--- a/src/gallium/auxiliary/cso_cache/cso_context.h
+++ b/src/gallium/auxiliary/cso_cache/cso_context.h
@@ -188,19 +188,6 @@ void cso_save_render_condition(struct cso_context *cso);
void cso_restore_render_condition(struct cso_context *cso);
-/* clip state */
-
-void
-cso_set_clip(struct cso_context *cso,
- const struct pipe_clip_state *clip);
-
-void
-cso_save_clip(struct cso_context *cso);
-
-void
-cso_restore_clip(struct cso_context *cso);
-
-
/* sampler view state */
void
diff --git a/src/mesa/state_tracker/st_atom_clip.c b/src/mesa/state_tracker/st_atom_clip.c
index f82c1332afc..506a770499f 100644
--- a/src/mesa/state_tracker/st_atom_clip.c
+++ b/src/mesa/state_tracker/st_atom_clip.c
@@ -59,8 +59,11 @@ static void update_clip( struct st_context *st )
memcpy(clip.ucp,
use_eye ? ctx->Transform.EyeUserPlane
: ctx->Transform._ClipUserPlane, sizeof(clip.ucp));
- st->state.clip = clip;
- cso_set_clip(st->cso_context, &clip);
+
+ if (memcmp(&st->state.clip, &clip, sizeof(clip)) != 0) {
+ st->state.clip = clip;
+ st->pipe->set_clip_state(st->pipe, &clip);
+ }
}