diff options
author | Vadim Girlin <[email protected]> | 2013-02-01 11:45:35 +0400 |
---|---|---|
committer | Vadim Girlin <[email protected]> | 2013-02-01 12:08:42 +0400 |
commit | 022122ee63b8a00afc23eaa347df934a79fb1d4c (patch) | |
tree | b014eeb8150f2425140973923f9a7d4052e52ec5 /src/gallium/drivers/r600/r600_pipe.c | |
parent | b68a3b865be2dbd002f1fb8fc3eba20c4293a5bd (diff) |
r600g: use tables with ISA info v3
v3: added some flags including condition codes for ALU,
fixed issue with CF reverse lookup (overlapping ranges of CF_ALU_xxx
and other CF instructions)
rebased on current master
Signed-off-by: Vadim Girlin <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_pipe.c')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index a59578db9c4..73a8d1aa81d 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -22,6 +22,7 @@ */ #include "r600_pipe.h" #include "r600_public.h" +#include "r600_isa.h" #include <errno.h> #include "pipe/p_shader_tokens.h" @@ -260,6 +261,8 @@ static void r600_destroy_context(struct pipe_context *context) { struct r600_context *rctx = (struct r600_context *)context; + r600_isa_destroy(rctx->isa); + pipe_resource_reference((struct pipe_resource**)&rctx->dummy_cmask, NULL); pipe_resource_reference((struct pipe_resource**)&rctx->dummy_fmask, NULL); @@ -419,7 +422,11 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, void rctx->allocator_so_filled_size = u_suballocator_create(&rctx->context, 4096, 4, 0, PIPE_USAGE_STATIC, TRUE); - if (!rctx->allocator_so_filled_size) + if (!rctx->allocator_so_filled_size) + goto fail; + + rctx->isa = calloc(1, sizeof(struct r600_isa)); + if (!rctx->isa || r600_isa_init(rctx, rctx->isa)) goto fail; rctx->blitter = util_blitter_create(&rctx->context); |