freedreno/a4xx: remove fd4_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:16:37 -04:00
parent 2c40f2ba32
commit d48a2404a2
3 changed files with 10 additions and 23 deletions
@@ -71,8 +71,8 @@ static inline const struct ir3_shader_variant *
fd4_emit_get_vp(struct fd4_emit *emit)
{
if (!emit->vp) {
struct fd4_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;
}
@@ -86,8 +86,8 @@ fd4_emit_get_fp(struct fd4_emit *emit)
static const struct ir3_shader_variant binning_fp = {};
emit->fp = &binning_fp;
} else {
struct fd4_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;
@@ -39,22 +39,13 @@
#include "fd4_texture.h"
#include "fd4_format.h"
static void
delete_shader_stateobj(struct fd4_shader_stateobj *so)
{
ir3_shader_destroy(so->shader);
free(so);
}
static struct fd4_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 fd4_shader_stateobj *so = CALLOC_STRUCT(fd4_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 *
@@ -67,8 +58,8 @@ fd4_fp_state_create(struct pipe_context *pctx,
static void
fd4_fp_state_delete(struct pipe_context *pctx, void *hwcso)
{
struct fd4_shader_stateobj *so = hwcso;
delete_shader_stateobj(so);
struct ir3_shader *so = hwcso;
ir3_shader_destroy(so);
}
static void *
@@ -81,8 +72,8 @@ fd4_vp_state_create(struct pipe_context *pctx,
static void
fd4_vp_state_delete(struct pipe_context *pctx, void *hwcso)
{
struct fd4_shader_stateobj *so = hwcso;
delete_shader_stateobj(so);
struct ir3_shader *so = hwcso;
ir3_shader_destroy(so);
}
static void
@@ -33,10 +33,6 @@
#include "freedreno_context.h"
#include "ir3_shader.h"
struct fd4_shader_stateobj {
struct ir3_shader *shader;
};
struct fd4_emit;
void fd4_program_emit(struct fd_ringbuffer *ring, struct fd4_emit *emit,