freedreno/a5xx: remove fd5_shader_stateobj

Extra level of indirection that serves no purpose.

Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
Rob Clark 2018-05-11 08:19:22 -04:00
parent d48a2404a2
commit f897b67dc1
3 changed files with 10 additions and 23 deletions

View File

@ -75,8 +75,8 @@ static inline const struct ir3_shader_variant *
fd5_emit_get_vp(struct fd5_emit *emit)
{
if (!emit->vp) {
struct fd5_shader_stateobj *so = emit->prog->vp;
emit->vp = ir3_shader_variant(so->shader, emit->key, emit->debug);
struct ir3_shader *shader = emit->prog->vp;
emit->vp = ir3_shader_variant(shader, emit->key, emit->debug);
}
return emit->vp;
}
@ -90,8 +90,8 @@ fd5_emit_get_fp(struct fd5_emit *emit)
static const struct ir3_shader_variant binning_fp = {};
emit->fp = &binning_fp;
} else {
struct fd5_shader_stateobj *so = emit->prog->fp;
emit->fp = ir3_shader_variant(so->shader, emit->key, emit->debug);
struct ir3_shader *shader = emit->prog->fp;
emit->fp = ir3_shader_variant(shader, emit->key, emit->debug);
}
}
return emit->fp;

View File

@ -38,22 +38,13 @@
#include "fd5_texture.h"
#include "fd5_format.h"
static void
delete_shader_stateobj(struct fd5_shader_stateobj *so)
{
ir3_shader_destroy(so->shader);
free(so);
}
static struct fd5_shader_stateobj *
static struct ir3_shader *
create_shader_stateobj(struct pipe_context *pctx, const struct pipe_shader_state *cso,
enum shader_t type)
{
struct fd_context *ctx = fd_context(pctx);
struct ir3_compiler *compiler = ctx->screen->compiler;
struct fd5_shader_stateobj *so = CALLOC_STRUCT(fd5_shader_stateobj);
so->shader = ir3_shader_create(compiler, cso, type, &ctx->debug);
return so;
return ir3_shader_create(compiler, cso, type, &ctx->debug);
}
static void *
@ -66,8 +57,8 @@ fd5_fp_state_create(struct pipe_context *pctx,
static void
fd5_fp_state_delete(struct pipe_context *pctx, void *hwcso)
{
struct fd5_shader_stateobj *so = hwcso;
delete_shader_stateobj(so);
struct ir3_shader *so = hwcso;
ir3_shader_destroy(so);
}
static void *
@ -80,8 +71,8 @@ fd5_vp_state_create(struct pipe_context *pctx,
static void
fd5_vp_state_delete(struct pipe_context *pctx, void *hwcso)
{
struct fd5_shader_stateobj *so = hwcso;
delete_shader_stateobj(so);
struct ir3_shader *so = hwcso;
ir3_shader_destroy(so);
}
void

View File

@ -31,10 +31,6 @@
#include "freedreno_context.h"
#include "ir3_shader.h"
struct fd5_shader_stateobj {
struct ir3_shader *shader;
};
struct fd5_emit;
void fd5_emit_shader(struct fd_ringbuffer *ring, const struct ir3_shader_variant *so);