r600g: added literals where needed for POW instruction
Fixes size calculation for the bytecode buffer. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
committed by
Dave Airlie
parent
b3d41844c7
commit
e77b1e777d
@@ -1069,6 +1069,9 @@ static int tgsi_pow(struct r600_shader_ctx *ctx)
|
||||
alu.dst.write = 1;
|
||||
alu.last = 1;
|
||||
r = r600_bc_add_alu(ctx->bc, &alu);
|
||||
if (r)
|
||||
return r;
|
||||
r = r600_bc_add_literal(ctx->bc,ctx->value);
|
||||
if (r)
|
||||
return r;
|
||||
/* b * LOG2(a) */
|
||||
@@ -1083,6 +1086,9 @@ static int tgsi_pow(struct r600_shader_ctx *ctx)
|
||||
alu.dst.write = 1;
|
||||
alu.last = 1;
|
||||
r = r600_bc_add_alu(ctx->bc, &alu);
|
||||
if (r)
|
||||
return r;
|
||||
r = r600_bc_add_literal(ctx->bc,ctx->value);
|
||||
if (r)
|
||||
return r;
|
||||
/* POW(a,b) = EXP2(b * LOG2(a))*/
|
||||
@@ -1093,6 +1099,9 @@ static int tgsi_pow(struct r600_shader_ctx *ctx)
|
||||
alu.dst.write = 1;
|
||||
alu.last = 1;
|
||||
r = r600_bc_add_alu(ctx->bc, &alu);
|
||||
if (r)
|
||||
return r;
|
||||
r = r600_bc_add_literal(ctx->bc,ctx->value);
|
||||
if (r)
|
||||
return r;
|
||||
return tgsi_helper_tempx_replicate(ctx);
|
||||
|
||||
Reference in New Issue
Block a user