summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gallium/auxiliary/cso_cache/cso_context.c87
1 files changed, 54 insertions, 33 deletions
diff --git a/src/gallium/auxiliary/cso_cache/cso_context.c b/src/gallium/auxiliary/cso_cache/cso_context.c
index c9a9fef737f..7db1e41f8b0 100644
--- a/src/gallium/auxiliary/cso_cache/cso_context.c
+++ b/src/gallium/auxiliary/cso_cache/cso_context.c
@@ -27,7 +27,7 @@
/**
* @file
- *
+ *
* Wrap the cso cache & hash mechanisms in a simplified
* pipe-driver-specific interface.
*
@@ -134,7 +134,8 @@ static boolean delete_blend_state(struct cso_context *ctx, void *state)
static boolean delete_depth_stencil_state(struct cso_context *ctx, void *state)
{
- struct cso_depth_stencil_alpha *cso = (struct cso_depth_stencil_alpha *)state;
+ struct cso_depth_stencil_alpha *cso =
+ (struct cso_depth_stencil_alpha *)state;
if (ctx->depth_stencil == cso->data)
return FALSE;
@@ -208,8 +209,9 @@ static INLINE boolean delete_cso(struct cso_context *ctx,
return FALSE;
}
-static INLINE void sanitize_hash(struct cso_hash *hash, enum cso_cache_type type,
- int max_size, void *user_data)
+static INLINE void
+sanitize_hash(struct cso_hash *hash, enum cso_cache_type type,
+ int max_size, void *user_data)
{
struct cso_context *ctx = (struct cso_context *)user_data;
/* if we're approach the maximum size, remove fourth of the entries
@@ -286,7 +288,7 @@ struct cso_context *cso_create_context( struct pipe_context *pipe )
return ctx;
out:
- cso_destroy_context( ctx );
+ cso_destroy_context( ctx );
return NULL;
}
@@ -376,10 +378,12 @@ enum pipe_error cso_set_blend(struct cso_context *ctx,
struct cso_hash_iter iter;
void *handle;
- key_size = templ->independent_blend_enable ? sizeof(struct pipe_blend_state) :
- (char *)&(templ->rt[1]) - (char *)templ;
+ key_size = templ->independent_blend_enable ?
+ sizeof(struct pipe_blend_state) :
+ (char *)&(templ->rt[1]) - (char *)templ;
hash_key = cso_construct_key((void*)templ, key_size);
- iter = cso_find_state_template(ctx->cache, hash_key, CSO_BLEND, (void*)templ, key_size);
+ iter = cso_find_state_template(ctx->cache, hash_key, CSO_BLEND,
+ (void*)templ, key_size);
if (cso_hash_iter_is_null(iter)) {
struct cso_blend *cso = MALLOC(sizeof(struct cso_blend));
@@ -428,28 +432,33 @@ void cso_restore_blend(struct cso_context *ctx)
-enum pipe_error cso_set_depth_stencil_alpha(struct cso_context *ctx,
- const struct pipe_depth_stencil_alpha_state *templ)
+enum pipe_error
+cso_set_depth_stencil_alpha(struct cso_context *ctx,
+ const struct pipe_depth_stencil_alpha_state *templ)
{
unsigned key_size = sizeof(struct pipe_depth_stencil_alpha_state);
unsigned hash_key = cso_construct_key((void*)templ, key_size);
struct cso_hash_iter iter = cso_find_state_template(ctx->cache,
- hash_key,
+ hash_key,
CSO_DEPTH_STENCIL_ALPHA,
(void*)templ, key_size);
void *handle;
if (cso_hash_iter_is_null(iter)) {
- struct cso_depth_stencil_alpha *cso = MALLOC(sizeof(struct cso_depth_stencil_alpha));
+ struct cso_depth_stencil_alpha *cso =
+ MALLOC(sizeof(struct cso_depth_stencil_alpha));
if (!cso)
return PIPE_ERROR_OUT_OF_MEMORY;
memcpy(&cso->state, templ, sizeof(*templ));
- cso->data = ctx->pipe->create_depth_stencil_alpha_state(ctx->pipe, &cso->state);
- cso->delete_state = (cso_state_callback)ctx->pipe->delete_depth_stencil_alpha_state;
+ cso->data = ctx->pipe->create_depth_stencil_alpha_state(ctx->pipe,
+ &cso->state);
+ cso->delete_state =
+ (cso_state_callback)ctx->pipe->delete_depth_stencil_alpha_state;
cso->context = ctx->pipe;
- iter = cso_insert_state(ctx->cache, hash_key, CSO_DEPTH_STENCIL_ALPHA, cso);
+ iter = cso_insert_state(ctx->cache, hash_key,
+ CSO_DEPTH_STENCIL_ALPHA, cso);
if (cso_hash_iter_is_null(iter)) {
FREE(cso);
return PIPE_ERROR_OUT_OF_MEMORY;
@@ -458,7 +467,8 @@ enum pipe_error cso_set_depth_stencil_alpha(struct cso_context *ctx,
handle = cso->data;
}
else {
- handle = ((struct cso_depth_stencil_alpha *)cso_hash_iter_data(iter))->data;
+ handle = ((struct cso_depth_stencil_alpha *)
+ cso_hash_iter_data(iter))->data;
}
if (ctx->depth_stencil != handle) {
@@ -478,7 +488,8 @@ void cso_restore_depth_stencil_alpha(struct cso_context *ctx)
{
if (ctx->depth_stencil != ctx->depth_stencil_saved) {
ctx->depth_stencil = ctx->depth_stencil_saved;
- ctx->pipe->bind_depth_stencil_alpha_state(ctx->pipe, ctx->depth_stencil_saved);
+ ctx->pipe->bind_depth_stencil_alpha_state(ctx->pipe,
+ ctx->depth_stencil_saved);
}
ctx->depth_stencil_saved = NULL;
}
@@ -491,7 +502,8 @@ enum pipe_error cso_set_rasterizer(struct cso_context *ctx,
unsigned key_size = sizeof(struct pipe_rasterizer_state);
unsigned hash_key = cso_construct_key((void*)templ, key_size);
struct cso_hash_iter iter = cso_find_state_template(ctx->cache,
- hash_key, CSO_RASTERIZER,
+ hash_key,
+ CSO_RASTERIZER,
(void*)templ, key_size);
void *handle = NULL;
@@ -502,7 +514,8 @@ enum pipe_error cso_set_rasterizer(struct cso_context *ctx,
memcpy(&cso->state, templ, sizeof(*templ));
cso->data = ctx->pipe->create_rasterizer_state(ctx->pipe, &cso->state);
- cso->delete_state = (cso_state_callback)ctx->pipe->delete_rasterizer_state;
+ cso->delete_state =
+ (cso_state_callback)ctx->pipe->delete_rasterizer_state;
cso->context = ctx->pipe;
iter = cso_insert_state(ctx->cache, hash_key, CSO_RASTERIZER, cso);
@@ -701,7 +714,8 @@ void cso_save_stencil_ref(struct cso_context *ctx)
void cso_restore_stencil_ref(struct cso_context *ctx)
{
- if (memcmp(&ctx->stencil_ref, &ctx->stencil_ref_saved, sizeof(ctx->stencil_ref))) {
+ if (memcmp(&ctx->stencil_ref, &ctx->stencil_ref_saved,
+ sizeof(ctx->stencil_ref))) {
ctx->stencil_ref = ctx->stencil_ref_saved;
ctx->pipe->set_stencil_ref(ctx->pipe, &ctx->stencil_ref);
}
@@ -793,9 +807,10 @@ cso_restore_clip(struct cso_context *ctx)
}
}
-enum pipe_error cso_set_vertex_elements(struct cso_context *ctx,
- unsigned count,
- const struct pipe_vertex_element *states)
+enum pipe_error
+cso_set_vertex_elements(struct cso_context *ctx,
+ unsigned count,
+ const struct pipe_vertex_element *states)
{
struct u_vbuf *vbuf = ctx->vbuf;
unsigned key_size, hash_key;
@@ -808,15 +823,18 @@ enum pipe_error cso_set_vertex_elements(struct cso_context *ctx,
return PIPE_OK;
}
- /* need to include the count into the stored state data too.
- Otherwise first few count pipe_vertex_elements could be identical even if count
- is different, and there's no guarantee the hash would be different in that
- case neither */
+ /* Need to include the count into the stored state data too.
+ * Otherwise first few count pipe_vertex_elements could be identical
+ * even if count is different, and there's no guarantee the hash would
+ * be different in that case neither.
+ */
key_size = sizeof(struct pipe_vertex_element) * count + sizeof(unsigned);
velems_state.count = count;
- memcpy(velems_state.velems, states, sizeof(struct pipe_vertex_element) * count);
+ memcpy(velems_state.velems, states,
+ sizeof(struct pipe_vertex_element) * count);
hash_key = cso_construct_key((void*)&velems_state, key_size);
- iter = cso_find_state_template(ctx->cache, hash_key, CSO_VELEMENTS, (void*)&velems_state, key_size);
+ iter = cso_find_state_template(ctx->cache, hash_key, CSO_VELEMENTS,
+ (void*)&velems_state, key_size);
if (cso_hash_iter_is_null(iter)) {
struct cso_velements *cso = MALLOC(sizeof(struct cso_velements));
@@ -824,8 +842,10 @@ enum pipe_error cso_set_vertex_elements(struct cso_context *ctx,
return PIPE_ERROR_OUT_OF_MEMORY;
memcpy(&cso->state, &velems_state, key_size);
- cso->data = ctx->pipe->create_vertex_elements_state(ctx->pipe, count, &cso->state.velems[0]);
- cso->delete_state = (cso_state_callback)ctx->pipe->delete_vertex_elements_state;
+ cso->data = ctx->pipe->create_vertex_elements_state(ctx->pipe, count,
+ &cso->state.velems[0]);
+ cso->delete_state =
+ (cso_state_callback) ctx->pipe->delete_vertex_elements_state;
cso->context = ctx->pipe;
iter = cso_insert_state(ctx->cache, hash_key, CSO_VELEMENTS, cso);
@@ -963,7 +983,8 @@ single_sampler(struct cso_context *ctx,
memcpy(&cso->state, templ, sizeof(*templ));
cso->data = ctx->pipe->create_sampler_state(ctx->pipe, &cso->state);
- cso->delete_state = (cso_state_callback)ctx->pipe->delete_sampler_state;
+ cso->delete_state =
+ (cso_state_callback) ctx->pipe->delete_sampler_state;
cso->context = ctx->pipe;
iter = cso_insert_state(ctx->cache, hash_key, CSO_SAMPLER, cso);
@@ -1012,7 +1033,7 @@ single_sampler_done(struct cso_context *ctx, unsigned shader_stage)
if (info->hw.nr_samplers != info->nr_samplers ||
memcmp(info->hw.samplers,
info->samplers,
- info->nr_samplers * sizeof(void *)) != 0)
+ info->nr_samplers * sizeof(void *)) != 0)
{
memcpy(info->hw.samplers,
info->samplers,