diff options
Diffstat (limited to 'mesalib')
-rw-r--r-- | mesalib/src/gallium/auxiliary/hud/hud_context.c | 2 | ||||
-rw-r--r-- | mesalib/src/gallium/auxiliary/util/u_blit.c | 2 | ||||
-rw-r--r-- | mesalib/src/gallium/auxiliary/util/u_blitter.c | 3 | ||||
-rw-r--r-- | mesalib/src/gallium/auxiliary/util/u_blitter.h | 3 | ||||
-rw-r--r-- | mesalib/src/gallium/auxiliary/util/u_cpu_detect.c | 1 | ||||
-rw-r--r-- | mesalib/src/gallium/auxiliary/util/u_cpu_detect.h | 1 | ||||
-rw-r--r-- | mesalib/src/gallium/auxiliary/util/u_gen_mipmap.c | 2 | ||||
-rw-r--r-- | mesalib/src/mesa/main/bitset.h | 61 | ||||
-rw-r--r-- | mesalib/src/mesa/main/multisample.c | 17 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_cb_condrender.c | 6 |
10 files changed, 24 insertions, 74 deletions
diff --git a/mesalib/src/gallium/auxiliary/hud/hud_context.c b/mesalib/src/gallium/auxiliary/hud/hud_context.c index cbd00a961..981708314 100644 --- a/mesalib/src/gallium/auxiliary/hud/hud_context.c +++ b/mesalib/src/gallium/auxiliary/hud/hud_context.c @@ -456,7 +456,7 @@ hud_draw(struct hud_context *hud, struct pipe_resource *tex) cso_set_geometry_shader_handle(cso, NULL); cso_set_vertex_shader_handle(cso, hud->vs); cso_set_vertex_elements(cso, 2, hud->velems); - cso_set_render_condition(cso, NULL, 0); + cso_set_render_condition(cso, NULL, FALSE, 0); cso_set_sampler_views(cso, PIPE_SHADER_FRAGMENT, 1, &hud->font_sampler_view); cso_set_samplers(cso, PIPE_SHADER_FRAGMENT, 1, sampler_states); diff --git a/mesalib/src/gallium/auxiliary/util/u_blit.c b/mesalib/src/gallium/auxiliary/util/u_blit.c index cda66d157..07418be45 100644 --- a/mesalib/src/gallium/auxiliary/util/u_blit.c +++ b/mesalib/src/gallium/auxiliary/util/u_blit.c @@ -679,7 +679,7 @@ util_blit_pixels(struct blit_state *ctx, cso_set_rasterizer(ctx->cso, &ctx->rasterizer); cso_set_vertex_elements(ctx->cso, 2, ctx->velem); cso_set_stream_outputs(ctx->cso, 0, NULL, 0); - cso_set_render_condition(ctx->cso, NULL, 0); + cso_set_render_condition(ctx->cso, NULL, FALSE, 0); /* default sampler state */ ctx->sampler.normalized_coords = normalized; diff --git a/mesalib/src/gallium/auxiliary/util/u_blitter.c b/mesalib/src/gallium/auxiliary/util/u_blitter.c index e9ac170f7..be839d439 100644 --- a/mesalib/src/gallium/auxiliary/util/u_blitter.c +++ b/mesalib/src/gallium/auxiliary/util/u_blitter.c @@ -492,7 +492,7 @@ static void blitter_disable_render_cond(struct blitter_context_priv *ctx) struct pipe_context *pipe = ctx->base.pipe; if (ctx->base.saved_render_cond_query) { - pipe->render_condition(pipe, NULL, 0); + pipe->render_condition(pipe, NULL, FALSE, 0); } } @@ -502,6 +502,7 @@ static void blitter_restore_render_cond(struct blitter_context_priv *ctx) if (ctx->base.saved_render_cond_query) { pipe->render_condition(pipe, ctx->base.saved_render_cond_query, + ctx->base.saved_render_cond_cond, ctx->base.saved_render_cond_mode); ctx->base.saved_render_cond_query = NULL; } diff --git a/mesalib/src/gallium/auxiliary/util/u_blitter.h b/mesalib/src/gallium/auxiliary/util/u_blitter.h index e52d5acc9..d9cefde50 100644 --- a/mesalib/src/gallium/auxiliary/util/u_blitter.h +++ b/mesalib/src/gallium/auxiliary/util/u_blitter.h @@ -125,6 +125,7 @@ struct blitter_context struct pipe_query *saved_render_cond_query; uint saved_render_cond_mode; + boolean saved_render_cond_cond; }; /** @@ -515,10 +516,12 @@ util_blitter_save_sample_mask(struct blitter_context *blitter, static INLINE void util_blitter_save_render_condition(struct blitter_context *blitter, struct pipe_query *query, + boolean condition, uint mode) { blitter->saved_render_cond_query = query; blitter->saved_render_cond_mode = mode; + blitter->saved_render_cond_cond = condition; } #ifdef __cplusplus diff --git a/mesalib/src/gallium/auxiliary/util/u_cpu_detect.c b/mesalib/src/gallium/auxiliary/util/u_cpu_detect.c index 763b5cc22..b118fc8ae 100644 --- a/mesalib/src/gallium/auxiliary/util/u_cpu_detect.c +++ b/mesalib/src/gallium/auxiliary/util/u_cpu_detect.c @@ -283,6 +283,7 @@ util_cpu_detect(void) util_cpu_caps.has_ssse3 = (regs2[2] >> 9) & 1; /* 0x0000020 */ util_cpu_caps.has_sse4_1 = (regs2[2] >> 19) & 1; util_cpu_caps.has_sse4_2 = (regs2[2] >> 20) & 1; + util_cpu_caps.has_popcnt = (regs2[2] >> 23) & 1; util_cpu_caps.has_avx = (regs2[2] >> 28) & 1; util_cpu_caps.has_f16c = (regs2[2] >> 29) & 1; util_cpu_caps.has_mmx2 = util_cpu_caps.has_sse; /* SSE cpus supports mmxext too */ diff --git a/mesalib/src/gallium/auxiliary/util/u_cpu_detect.h b/mesalib/src/gallium/auxiliary/util/u_cpu_detect.h index 21c2f048f..f9cd6475e 100644 --- a/mesalib/src/gallium/auxiliary/util/u_cpu_detect.h +++ b/mesalib/src/gallium/auxiliary/util/u_cpu_detect.h @@ -62,6 +62,7 @@ struct util_cpu_caps { unsigned has_ssse3:1; unsigned has_sse4_1:1; unsigned has_sse4_2:1; + unsigned has_popcnt:1; unsigned has_avx:1; unsigned has_f16c:1; unsigned has_3dnow:1; diff --git a/mesalib/src/gallium/auxiliary/util/u_gen_mipmap.c b/mesalib/src/gallium/auxiliary/util/u_gen_mipmap.c index 7974b1d76..a885f2b0f 100644 --- a/mesalib/src/gallium/auxiliary/util/u_gen_mipmap.c +++ b/mesalib/src/gallium/auxiliary/util/u_gen_mipmap.c @@ -1578,7 +1578,7 @@ util_gen_mipmap(struct gen_mipmap_state *ctx, cso_set_sample_mask(ctx->cso, ~0); cso_set_vertex_elements(ctx->cso, 2, ctx->velem); cso_set_stream_outputs(ctx->cso, 0, NULL, 0); - cso_set_render_condition(ctx->cso, NULL, 0); + cso_set_render_condition(ctx->cso, NULL, FALSE, 0); set_fragment_shader(ctx, type, is_depth); set_vertex_shader(ctx); diff --git a/mesalib/src/mesa/main/bitset.h b/mesalib/src/mesa/main/bitset.h index c3b060b01..601fd0ebf 100644 --- a/mesalib/src/mesa/main/bitset.h +++ b/mesalib/src/mesa/main/bitset.h @@ -96,65 +96,4 @@ __bitset_ffs(const BITSET_WORD *x, int n) #define BITSET_FFS(x) __bitset_ffs(x, Elements(x)) -/**************************************************************************** - * 64-bit bitset implementation - */ - -#define BITSET64_WORD GLuint -#define BITSET64_WORDBITS (sizeof (BITSET64_WORD) * 8) - -/* bitset declarations - */ -#define BITSET64_DECLARE(name, size) \ - GLuint name[2] - -/* bitset operations - */ -#define BITSET64_COPY(x, y) do { (x)[0] = (y)[0]; (x)[1] = (y)[1]; } while (0) -#define BITSET64_EQUAL(x, y) ( (x)[0] == (y)[0] && (x)[1] == (y)[1] ) -#define BITSET64_ZERO(x) do { (x)[0] = 0; (x)[1] = 0; } while (0) -#define BITSET64_ONES(x) do { (x)[0] = 0xFF; (x)[1] = 0xFF; } while (0) - -#define BITSET64_BITWORD(b) ((b) / BITSET64_WORDBITS) -#define BITSET64_BIT(b) (1 << ((b) % BITSET64_WORDBITS)) - -/* single bit operations - */ -#define BITSET64_TEST(x, b) ((x)[BITSET64_BITWORD(b)] & BITSET64_BIT(b)) -#define BITSET64_SET(x, b) ((x)[BITSET64_BITWORD(b)] |= BITSET64_BIT(b)) -#define BITSET64_CLEAR(x, b) ((x)[BITSET64_BITWORD(b)] &= ~BITSET64_BIT(b)) - -#define BITSET64_MASK(b) ((b) == BITSET64_WORDBITS ? ~0 : BITSET64_BIT(b) - 1) -#define BITSET64_RANGE(b, e) (BITSET64_MASK((e) + 1) & ~BITSET64_MASK(b)) - -/* bit range operations - */ -#define BITSET64_TEST_SUBRANGE(x, b, e) \ - (BITSET64_BITWORD(b) == BITSET64_BITWORD(e) ? \ - ((x)[BITSET64_BITWORD(b)] & BITSET64_RANGE(b, e)) : \ - (assert (!"BITSET64_TEST_RANGE: bit range crosses word boundary"), 0)) -#define BITSET64_TEST_RANGE(x, b, e) \ - (BITSET64_BITWORD(b) == BITSET64_BITWORD(e) ? \ - (BITSET64_TEST_SUBRANGE(x, b, e)) : \ - (BITSET64_TEST_SUBRANGE(x, b, BITSET64_WORDBITS - 1) | \ - BITSET64_TEST_SUBRANGE(x, BITSET64_WORDBITS, e))) -#define BITSET64_SET_SUBRANGE(x, b, e) \ - (BITSET64_BITWORD(b) == BITSET64_BITWORD(e) ? \ - ((x)[BITSET64_BITWORD(b)] |= BITSET64_RANGE(b, e)) : \ - (assert (!"BITSET64_SET_RANGE: bit range crosses word boundary"), 0)) -#define BITSET64_SET_RANGE(x, b, e) \ - (BITSET64_BITWORD(b) == BITSET64_BITWORD(e) ? \ - (BITSET64_SET_SUBRANGE(x, b, e)) : \ - (BITSET64_SET_SUBRANGE(x, b, BITSET64_WORDBITS - 1) | \ - BITSET64_SET_SUBRANGE(x, BITSET64_WORDBITS, e))) -#define BITSET64_CLEAR_SUBRANGE(x, b, e) \ - (BITSET64_BITWORD(b) == BITSET64_BITWORD(e) ? \ - ((x)[BITSET64_BITWORD(b)] &= ~BITSET64_RANGE(b, e)) : \ - (assert (!"BITSET64_CLEAR_RANGE: bit range crosses word boundary"), 0)) -#define BITSET64_CLEAR_RANGE(x, b, e) \ - (BITSET64_BITWORD(b) == BITSET64_BITWORD(e) ? \ - (BITSET64_CLEAR_SUBRANGE(x, b, e)) : \ - (BITSET64_CLEAR_SUBRANGE(x, b, BITSET64_WORDBITS - 1) | \ - BITSET64_CLEAR_SUBRANGE(x, BITSET64_WORDBITS, e))) - #endif diff --git a/mesalib/src/mesa/main/multisample.c b/mesalib/src/mesa/main/multisample.c index f4116ca00..8b974c1b7 100644 --- a/mesalib/src/mesa/main/multisample.c +++ b/mesalib/src/mesa/main/multisample.c @@ -120,7 +120,8 @@ _mesa_SampleMaski(GLuint index, GLbitfield mask) } -/* Helper for checking a requested sample count against the limit +/** + * Helper for checking a requested sample count against the limit * for a particular (target, internalFormat) pair. The limit imposed, * and the error generated, both depend on which extensions are supported. * @@ -131,8 +132,9 @@ GLenum _mesa_check_sample_count(struct gl_context *ctx, GLenum target, GLenum internalFormat, GLsizei samples) { - /* If ARB_internalformat_query is supported, then treat its highest returned sample - * count as the absolute maximum for this format; it is allowed to exceed MAX_SAMPLES. + /* If ARB_internalformat_query is supported, then treat its highest + * returned sample count as the absolute maximum for this format; it is + * allowed to exceed MAX_SAMPLES. * * From the ARB_internalformat_query spec: * @@ -141,7 +143,8 @@ _mesa_check_sample_count(struct gl_context *ctx, GLenum target, */ if (ctx->Extensions.ARB_internalformat_query) { GLint buffer[16]; - int count = ctx->Driver.QuerySamplesForFormat(ctx, target, internalFormat, buffer); + int count = ctx->Driver.QuerySamplesForFormat(ctx, target, + internalFormat, buffer); int limit = count ? buffer[0] : -1; return samples > limit ? GL_INVALID_OPERATION : GL_NO_ERROR; @@ -159,7 +162,8 @@ _mesa_check_sample_count(struct gl_context *ctx, GLenum target, * * And when describing the operation of TexImage*Multisample: * - * "The error INVALID_OPERATION may be generated if any of the following are true: + * "The error INVALID_OPERATION may be generated if any of the following + * are true: * * * <internalformat> is a depth/stencil-renderable format and <samples> * is greater than the value of MAX_DEPTH_TEXTURE_SAMPLES @@ -171,7 +175,8 @@ _mesa_check_sample_count(struct gl_context *ctx, GLenum target, if (ctx->Extensions.ARB_texture_multisample) { if (_mesa_is_enum_format_integer(internalFormat)) - return samples > ctx->Const.MaxIntegerSamples ? GL_INVALID_OPERATION : GL_NO_ERROR; + return samples > ctx->Const.MaxIntegerSamples + ? GL_INVALID_OPERATION : GL_NO_ERROR; if (target == GL_TEXTURE_2D_MULTISAMPLE || target == GL_TEXTURE_2D_MULTISAMPLE_ARRAY) { diff --git a/mesalib/src/mesa/state_tracker/st_cb_condrender.c b/mesalib/src/mesa/state_tracker/st_cb_condrender.c index 3a5835ecd..8776985f9 100644 --- a/mesalib/src/mesa/state_tracker/st_cb_condrender.c +++ b/mesalib/src/mesa/state_tracker/st_cb_condrender.c @@ -76,12 +76,12 @@ st_BeginConditionalRender(struct gl_context *ctx, struct gl_query_object *q, m = PIPE_RENDER_COND_WAIT; } - cso_set_render_condition(st->cso_context, stq->pq, m); + cso_set_render_condition(st->cso_context, stq->pq, FALSE, m); } /** - * Called via ctx->Driver.BeginConditionalRender() + * Called via ctx->Driver.EndConditionalRender() */ static void st_EndConditionalRender(struct gl_context *ctx, struct gl_query_object *q) @@ -91,7 +91,7 @@ st_EndConditionalRender(struct gl_context *ctx, struct gl_query_object *q) st_flush_bitmap_cache(st); - cso_set_render_condition(st->cso_context, NULL, 0); + cso_set_render_condition(st->cso_context, NULL, FALSE, 0); } |