Bladeren bron

etnaviv: GC7000: Move active_samplers_bits to texture

This needs to be shared between texture_plain and texture_desc.

Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
tags/18.0-branchpoint
Wladimir J. van der Laan 7 jaren geleden
bovenliggende
commit
075f8cd7de

+ 0
- 12
src/gallium/drivers/etnaviv/etnaviv_emit.c Bestand weergeven

@@ -91,18 +91,6 @@ etna_stall(struct etna_cmd_stream *stream, uint32_t from, uint32_t to)
#define EMIT_STATE_RELOC(state_name, src_value) \
etna_coalsence_emit_reloc(stream, &coalesce, VIVS_##state_name, src_value)

/* Create bit field that specifies which samplers are active and thus need to be
* programmed
* 32 bits is enough for 32 samplers. As far as I know this is the upper bound
* supported on any Vivante hw
* up to GC4000.
*/
static uint32_t
active_samplers_bits(struct etna_context *ctx)
{
return ctx->active_sampler_views & ctx->active_samplers;
}

#define ETNA_3D_CONTEXT_SIZE (400) /* keep this number above "Total state updates (fixed)" from gen_weave_state tool */

static unsigned

+ 6
- 0
src/gallium/drivers/etnaviv/etnaviv_texture.c Bestand weergeven

@@ -432,6 +432,12 @@ etna_texture_barrier(struct pipe_context *pctx, unsigned flags)
etna_set_state(ctx->stream, VIVS_GL_FLUSH_CACHE, VIVS_GL_FLUSH_CACHE_COLOR | VIVS_GL_FLUSH_CACHE_TEXTURE);
}

uint32_t
active_samplers_bits(struct etna_context *ctx)
{
return ctx->active_sampler_views & ctx->active_samplers;
}

void
etna_texture_init(struct pipe_context *pctx)
{

+ 11
- 0
src/gallium/drivers/etnaviv/etnaviv_texture.h Bestand weergeven

@@ -34,6 +34,8 @@

#include "hw/state_3d.xml.h"

struct etna_context;

struct etna_sampler_state {
struct pipe_sampler_state base;

@@ -83,4 +85,13 @@ etna_texture_init(struct pipe_context *pctx);
struct etna_resource *
etna_texture_handle_incompatible(struct pipe_context *pctx, struct pipe_resource *prsc);

/* Create bit field that specifies which samplers are active and thus need to be
* programmed
* 32 bits is enough for 32 samplers. As far as I know this is the upper bound
* supported on any Vivante hw
* up to GC4000.
*/
uint32_t
active_samplers_bits(struct etna_context *ctx);

#endif

Laden…
Annuleren
Opslaan