On Thu, Dec 31, 2009 at 11:50 AM, Luca Barbieri <l...@luca-barbieri.com> wrote: > Also some missing _src()s and cosmetic changes. > --- > src/gallium/programs/galliumut/Makefile | 5 + > .../programs/galliumut/gen_uureg_opcodes.sh | 29 +++ > src/gallium/programs/galliumut/uureg.h | 196 > ++++---------------- > 3 files changed, 71 insertions(+), 159 deletions(-) > create mode 100644 src/gallium/programs/galliumut/gen_uureg_opcodes.sh > > diff --git a/src/gallium/programs/galliumut/Makefile > b/src/gallium/programs/galliumut/Makefile > index ab0d684..4cb9d7c 100644 > --- a/src/gallium/programs/galliumut/Makefile > +++ b/src/gallium/programs/galliumut/Makefile > @@ -9,3 +9,8 @@ LIBRARY_DEFINES = --std=gnu99 > C_SOURCES = egl_gallium.c image.c normal_gen.c > > include ../../Makefile.template > + > +default: uureg_opcodes.h > + > +uureg_opcodes.h: gen_uureg_opcodes.sh > + bash $^ > $@
Please just us sh here. There's nothing bash specific about this script. > diff --git a/src/gallium/programs/galliumut/gen_uureg_opcodes.sh > b/src/gallium/programs/galliumut/gen_uureg_opcodes.sh > new file mode 100644 > index 0000000..3a56fcb > --- /dev/null > +++ b/src/gallium/programs/galliumut/gen_uureg_opcodes.sh > @@ -0,0 +1,29 @@ > +#!/bin/bash > +cat - <<EOF > +#ifndef UUREG_OPCODES_H > +#define UUREG_OPCODES_H > + > +/* Autogenerated file, do not edit manually! Use make to regenerate. */ > + > +EOF > + > +cat - << EOF|cpp -P -E - -I../../auxiliary|sed -re 's/^define /#define _/; > s/ CAT /##/g;' > +#define OP00(op) define op() ureg_##op(ureg) > +#define OP01(op) define op(src) ureg_##op(ureg, _src(src)) > +#define OP00_LBL(op) define op(label) ureg_##op(ureg, label) > +#define OP01_LBL(op) define op(src, label) ureg_##op(ureg, _src(src), label) > +#define OP10(op) define op(dst) ureg_##op(ureg, dst) > +#define OP11(op) define op(dst, src) ureg_##op(ureg, dst, _src(src)) > +#define OP12(op) define op(dst, src0, src1) ureg_##op(ureg, dst, _src(src0), > _src(src1)) > +#define OP12_TEX(op) define op(dst, target, src0, src1) ureg_##op(ureg, dst, > TGSI_TEXTURE_ CAT target, _src(src0), _src(src1)) > +#define OP13(op) define op(dst, src0, src1, src2) ureg_##op(ureg, dst, > _src(src0), _src(src1), _src(src2)) > +#define OP14_TEX(op) define op(dst, target, src0, src1, src2, src3) > ureg_##op(ureg, dst, TGSI_TEXTURE_ CAT target, _src(src0), _src(src1), > _src(src2), _src(src3)) > + > +#include <tgsi/tgsi_opcode_tmp.h> > +EOF > + > +cat - <<EOF > + > +#endif > +EOF > + > diff --git a/src/gallium/programs/galliumut/uureg.h > b/src/gallium/programs/galliumut/uureg.h > index a2d07a7..d30e188 100644 > --- a/src/gallium/programs/galliumut/uureg.h > +++ b/src/gallium/programs/galliumut/uureg.h > @@ -60,7 +60,7 @@ static inline struct ureg_src _src(const struct ureg_src& > src) {return src;} > #define _OUTPUT(v, n, i) struct ureg_dst v = ureg_DECL_output(ureg, > TGSI_SEMANTIC_##n, i) > #define _CONST_(v, i) struct ureg_src v = ureg_DECL_constant(ureg, i) > #define _CONST(v, s) UREG_CONST(v, ureg, s) > - #define _CONST_MAT3(v, s) UREG_CONST_MAT3(v, ureg, s) > +#define _CONST_MAT3(v, s) UREG_CONST_MAT3(v, ureg, s) > #define _CONST_MAT4(v, s) UREG_CONST_MAT4(v, ureg, s) > #define _ADDRESS(v) struct ureg_src v = ureg_DECL_address(ureg) > #define _LOOP(v) struct ureg_src v = ureg_DECL_loop(ureg) > @@ -88,6 +88,41 @@ static inline struct ureg_src _src(const struct ureg_src& > src) {return src;} > #define _zy(v) _swz(v, Z, Y, Z, Y) > #define _zw(v) _swz(v, Z, W, Z, W) > > +#define _ind(r, a) ureg_src_indirect(_src(r), _src(a)) > +#define _abs(x) ureg_abs(_src(x)) > +#define _neg(x) ureg_negate(_src(x)) > +#define _undef ureg_src_undef() > +#define _is_undef(v) ureg_src_is_undef(_src(v)) > + > +#define _X(v) ureg_writemask((v), TGSI_WRITEMASK_X) > +#define _Y(v) ureg_writemask((v), TGSI_WRITEMASK_Y) > +#define _Z(v) ureg_writemask((v), TGSI_WRITEMASK_Z) > +#define _W(v) ureg_writemask((v), TGSI_WRITEMASK_W) > +#define _XY(v) ureg_writemask((v), TGSI_WRITEMASK_X | TGSI_WRITEMASK_Y) > +#define _XZ(v) ureg_writemask((v), TGSI_WRITEMASK_X | TGSI_WRITEMASK_Z) > +#define _XW(v) ureg_writemask((v), TGSI_WRITEMASK_X | TGSI_WRITEMASK_W) > +#define _YZ(v) ureg_writemask((v), TGSI_WRITEMASK_Y | TGSI_WRITEMASK_Z) > +#define _YW(v) ureg_writemask((v), TGSI_WRITEMASK_Y | TGSI_WRITEMASK_W) > +#define _ZW(v) ureg_writemask((v), TGSI_WRITEMASK_Z | TGSI_WRITEMASK_W) > +#define _XYZ(v) ureg_writemask((v), TGSI_WRITEMASK_X | TGSI_WRITEMASK_Y | > TGSI_WRITEMASK_Z) > +#define _XYW(v) ureg_writemask((v), TGSI_WRITEMASK_X | TGSI_WRITEMASK_Y | > TGSI_WRITEMASK_W) > +#define _XZW(v) ureg_writemask((v), TGSI_WRITEMASK_Y | TGSI_WRITEMASK_Z | > TGSI_WRITEMASK_W) > +#define _YZW(v) ureg_writemask((v), TGSI_WRITEMASK_Y | TGSI_WRITEMASK_Z | > TGSI_WRITEMASK_W) > +#define _XYZW(v) ureg_writemask((v), TGSI_WRITEMASK_X | TGSI_WRITEMASK_Y | > TGSI_WRITEMASK_Z | TGSI_WRITEMASK_W) > + > +#define _SAT(v) ureg_saturate(v) > +#define _PRED(v, n, x, y, z, w) ureg_predicate(v, n, x, y, z, w) > +#define _IND(r, a) ureg_dst_indirect(r, _src(a)) > +#define _UNDEF ureg_dst_undef() > +#define _IS_UNDEF(v) ureg_dst_is_undef(v) > + > +#define _VERT struct ureg_program* ureg = ureg_create(TGSI_PROCESSOR_VERTEX) > +#define _FRAG struct ureg_program* ureg = > ureg_create(TGSI_PROCESSOR_FRAGMENT) > + > +#define _END_SHADER(pipe) (_END(), ureg_create_shader_and_destroy(ureg, > pipe)) > + > +#include "uureg_opcodes.h" > + > /* generate with > #!/usr/bin/python > l = ('x', 'y', 'z', 'w') > @@ -354,162 +389,5 @@ for i in range(256): > #define _wwwz(v) _swz(v, W, W, W, Z) > #define _wwww(v) _swz(v, W, W, W, W) > > -#define _ind(r, a) ureg_src_indirect(_src(r), _src(a)) > -#define _abs(x) ureg_abs(_src(x)) > -#define _neg(x) ureg_negate(_src(x)) > -#define _undef ureg_src_undef() > -#define _is_undef(v) ureg_src_is_undef(v) > - > -#define _X(v) ureg_writemask((v), TGSI_WRITEMASK_X) > -#define _Y(v) ureg_writemask((v), TGSI_WRITEMASK_Y) > -#define _Z(v) ureg_writemask((v), TGSI_WRITEMASK_Z) > -#define _W(v) ureg_writemask((v), TGSI_WRITEMASK_W) > -#define _XY(v) ureg_writemask((v), TGSI_WRITEMASK_X | TGSI_WRITEMASK_Y) > -#define _XZ(v) ureg_writemask((v), TGSI_WRITEMASK_X | TGSI_WRITEMASK_Z) > -#define _XW(v) ureg_writemask((v), TGSI_WRITEMASK_X | TGSI_WRITEMASK_W) > -#define _YZ(v) ureg_writemask((v), TGSI_WRITEMASK_Y | TGSI_WRITEMASK_Z) > -#define _YW(v) ureg_writemask((v), TGSI_WRITEMASK_Y | TGSI_WRITEMASK_W) > -#define _ZW(v) ureg_writemask((v), TGSI_WRITEMASK_Z | TGSI_WRITEMASK_W) > -#define _XYZ(v) ureg_writemask((v), TGSI_WRITEMASK_X | TGSI_WRITEMASK_Y | > TGSI_WRITEMASK_Z) > -#define _XYW(v) ureg_writemask((v), TGSI_WRITEMASK_X | TGSI_WRITEMASK_Y | > TGSI_WRITEMASK_W) > -#define _XZW(v) ureg_writemask((v), TGSI_WRITEMASK_Y | TGSI_WRITEMASK_Z | > TGSI_WRITEMASK_W) > -#define _YZW(v) ureg_writemask((v), TGSI_WRITEMASK_Y | TGSI_WRITEMASK_Z | > TGSI_WRITEMASK_W) > -#define _XYZW(v) ureg_writemask((v), TGSI_WRITEMASK_X | TGSI_WRITEMASK_Y | > TGSI_WRITEMASK_Z | TGSI_WRITEMASK_W) > - > -#define _SAT(v) ureg_saturate(v) > -#define _PRED(v, n, x, y, z, w) ureg_predicate(v, n, x, y, z, w) > -#define _IND(r, a) ureg_dst_indirect(r, _src(a)) > -#define _UNDEF ureg_dst_undef() > -#define _IS_UNDEF(v) ureg_dst_is_undef(v) > - > -#define _VERT struct ureg_program* ureg = ureg_create(TGSI_PROCESSOR_VERTEX) > -#define _FRAG struct ureg_program* ureg = > ureg_create(TGSI_PROCESSOR_FRAGMENT) > - > -#define _END_SHADER(pipe) (_END(), ureg_create_shader_and_destroy(ureg, > pipe)) > - > -/* > -Generate with: > -cat - << EOF|gcc -E - -I../../src/gallium/auxiliary|sed -re > 's/^define/#define/; s/(ureg.* )(src[0-9]+)/\1_src(\2)/; s/(ureg.* > )(src[0-9]+)/\1_src(\2)/; s/(ureg.* )(src[0-9]+)/\1_src(\2)/; s/(ureg.* > )(src[0-9]+)/\1_src(\2)/; s/(ureg.* )(target)/\1TGSI_TEXTURE_##\2/;' > -#define OP00(op) define op() ureg_##op(ureg) > -#define OP01(op) define op(src) ureg_##op(ureg, src) > -#define OP00_LBL(op) define op(label) ureg_##op(ureg, label) > -#define OP01_LBL(op) define op(src, label) ureg_##op(ureg, src, label) > -#define OP10(op) define op(dst) ureg_##op(ureg, dst) > -#define OP11(op) define op(dst, src) ureg_##op(ureg, dst, src) > -#define OP12(op) define op(dst, src0, src1) ureg_##op(ureg, dst, src0, src1) > -#define OP12_TEX(op) define op(dst, target, src0, src1) ureg_##op(ureg, dst, > target, src0, src1) > -#define OP13(op) define op(dst, src0, src1, src2) ureg_##op(ureg, dst, src0, > src1, src2) > -#define OP14_TEX(op) define op(dst, target, src0, src1, src2, src3) > ureg_##op(ureg, dst, target, src0, src1, src2, src3) > - > -#include <tgsi/tgsi_opcode_tmp.h> > -EOF > -*/ > - > -#define _ARL(dst, src) ureg_ARL(ureg, dst, _src(src)) > -#define _MOV(dst, src) ureg_MOV(ureg, dst, _src(src)) > -#define _LIT(dst, src) ureg_LIT(ureg, dst, _src(src)) > -#define _RCP(dst, src) ureg_RCP(ureg, dst, _src(src)) > -#define _RSQ(dst, src) ureg_RSQ(ureg, dst, _src(src)) > -#define _EXP(dst, src) ureg_EXP(ureg, dst, _src(src)) > -#define _LOG(dst, src) ureg_LOG(ureg, dst, _src(src)) > -#define _MUL(dst, src0, src1) ureg_MUL(ureg, dst, _src(src0), _src(src1)) > -#define _ADD(dst, src0, src1) ureg_ADD(ureg, dst, _src(src0), _src(src1)) > -#define _DP3(dst, src0, src1) ureg_DP3(ureg, dst, _src(src0), _src(src1)) > -#define _DP4(dst, src0, src1) ureg_DP4(ureg, dst, _src(src0), _src(src1)) > -#define _DST(dst, src0, src1) ureg_DST(ureg, dst, _src(src0), _src(src1)) > -#define _MIN(dst, src0, src1) ureg_MIN(ureg, dst, _src(src0), _src(src1)) > -#define _MAX(dst, src0, src1) ureg_MAX(ureg, dst, _src(src0), _src(src1)) > -#define _SLT(dst, src0, src1) ureg_SLT(ureg, dst, _src(src0), _src(src1)) > -#define _SGE(dst, src0, src1) ureg_SGE(ureg, dst, _src(src0), _src(src1)) > -#define _MAD(dst, src0, src1, src2) ureg_MAD(ureg, dst, _src(src0), > _src(src1), _src(src2)) > -#define _SUB(dst, src0, src1) ureg_SUB(ureg, dst, _src(src0), _src(src1)) > -#define _LRP(dst, src0, src1, src2) ureg_LRP(ureg, dst, _src(src0), > _src(src1), _src(src2)) > -#define _CND(dst, src0, src1, src2) ureg_CND(ureg, dst, _src(src0), > _src(src1), _src(src2)) > -#define _DP2A(dst, src0, src1, src2) ureg_DP2A(ureg, dst, _src(src0), > _src(src1), _src(src2)) > -#define _FRC(dst, src) ureg_FRC(ureg, dst, _src(src)) > -#define _CLAMP(dst, src0, src1, src2) ureg_CLAMP(ureg, dst, _src(src0), > _src(src1), _src(src2)) > -#define _FLR(dst, src) ureg_FLR(ureg, dst, _src(src)) > -#define _ROUND(dst, src) ureg_ROUND(ureg, dst, _src(src)) > -#define _EX2(dst, src) ureg_EX2(ureg, dst, _src(src)) > -#define _LG2(dst, src) ureg_LG2(ureg, dst, _src(src)) > -#define _POW(dst, src0, src1) ureg_POW(ureg, dst, _src(src0), _src(src1)) > -#define _XPD(dst, src0, src1) ureg_XPD(ureg, dst, _src(src0), _src(src1)) > -#define _ABS(dst, src) ureg_ABS(ureg, dst, _src(src)) > -#define _RCC(dst, src) ureg_RCC(ureg, dst, _src(src)) > -#define _DPH(dst, src0, src1) ureg_DPH(ureg, dst, _src(src0), _src(src1)) > -#define _COS(dst, src) ureg_COS(ureg, dst, _src(src)) > -#define _DDX(dst, src) ureg_DDX(ureg, dst, _src(src)) > -#define _DDY(dst, src) ureg_DDY(ureg, dst, _src(src)) > -#define _KILP() ureg_KILP(ureg) > -#define _PK2H(dst, src) ureg_PK2H(ureg, dst, _src(src)) > -#define _PK2US(dst, src) ureg_PK2US(ureg, dst, _src(src)) > -#define _PK4B(dst, src) ureg_PK4B(ureg, dst, _src(src)) > -#define _PK4UB(dst, src) ureg_PK4UB(ureg, dst, _src(src)) > -#define _RFL(dst, src0, src1) ureg_RFL(ureg, dst, _src(src0), _src(src1)) > -#define _SEQ(dst, src0, src1) ureg_SEQ(ureg, dst, _src(src0), _src(src1)) > -#define _SFL(dst, src0, src1) ureg_SFL(ureg, dst, _src(src0), _src(src1)) > -#define _SGT(dst, src0, src1) ureg_SGT(ureg, dst, _src(src0), _src(src1)) > -#define _SIN(dst, src) ureg_SIN(ureg, dst, _src(src)) > -#define _SLE(dst, src0, src1) ureg_SLE(ureg, dst, _src(src0), _src(src1)) > -#define _SNE(dst, src0, src1) ureg_SNE(ureg, dst, _src(src0), _src(src1)) > -#define _STR(dst, src0, src1) ureg_STR(ureg, dst, _src(src0), _src(src1)) > -#define _TEX(dst, target, src0, src1) ureg_TEX(ureg, dst, > TGSI_TEXTURE_##target, _src(src0), _src(src1)) > -#define _TXD(dst, target, src0, src1, src2, src3) ureg_TXD(ureg, dst, > TGSI_TEXTURE_##target, src0, _src(src1), _src(src2), _src(src3)) > -#define _TXP(dst, target, src0, src1) ureg_TXP(ureg, dst, > TGSI_TEXTURE_##target, _src(src0), _src(src1)) > -#define _UP2H(dst, src) ureg_UP2H(ureg, dst, _src(src)) > -#define _UP2US(dst, src) ureg_UP2US(ureg, dst, _src(src)) > -#define _UP4B(dst, src) ureg_UP4B(ureg, dst, _src(src)) > -#define _UP4UB(dst, src) ureg_UP4UB(ureg, dst, _src(src)) > -#define _X2D(dst, src0, src1, src2) ureg_X2D(ureg, dst, _src(src0), > _src(src1), _src(src2)) > -#define _ARA(dst, src) ureg_ARA(ureg, dst, _src(src)) > -#define _ARR(dst, src) ureg_ARR(ureg, dst, _src(src)) > -#define _BRA(src) ureg_BRA(ureg, _src(src)) > -#define _CAL(label) ureg_CAL(ureg, label) > -#define _RET() ureg_RET(ureg) > -#define _SSG(dst, src) ureg_SSG(ureg, dst, _src(src)) > -#define _CMP(dst, src0, src1, src2) ureg_CMP(ureg, dst, _src(src0), > _src(src1), _src(src2)) > -#define _SCS(dst, src) ureg_SCS(ureg, dst, _src(src)) > -#define _TXB(dst, target, src0, src1) ureg_TXB(ureg, dst, > TGSI_TEXTURE_##target, _src(src0), _src(src1)) > -#define _NRM(dst, src) ureg_NRM(ureg, dst, _src(src)) > -#define _DIV(dst, src0, src1) ureg_DIV(ureg, dst, _src(src0), _src(src1)) > -#define _DP2(dst, src0, src1) ureg_DP2(ureg, dst, _src(src0), _src(src1)) > -#define _TXL(dst, target, src0, src1) ureg_TXL(ureg, dst, > TGSI_TEXTURE_##target, _src(src0), _src(src1)) > -#define _BRK() ureg_BRK(ureg) > -#define _IF(src, label) ureg_IF(ureg, _src(src), label) > -#define _BGNFOR(dst, src) ureg_BGNFOR(ureg, dst, _src(src)) > -#define _REP(src) ureg_REP(ureg, _src(src)) > -#define _ELSE(label) ureg_ELSE(ureg, label) > -#define _ENDIF() ureg_ENDIF(ureg) > -#define _ENDFOR(dst) ureg_ENDFOR(ureg, dst) > -#define _ENDREP() ureg_ENDREP(ureg) > -#define _PUSHA(src) ureg_PUSHA(ureg, _src(src)) > -#define _POPA(dst) ureg_POPA(ureg, dst) > -#define _CEIL(dst, src) ureg_CEIL(ureg, dst, _src(src)) > -#define _I2F(dst, src) ureg_I2F(ureg, dst, _src(src)) > -#define _NOT(dst, src) ureg_NOT(ureg, dst, _src(src)) > -#define _TRUNC(dst, src) ureg_TRUNC(ureg, dst, _src(src)) > -#define _SHL(dst, src0, src1) ureg_SHL(ureg, dst, _src(src0), _src(src1)) > -#define _SHR(dst, src0, src1) ureg_SHR(ureg, dst, _src(src0), _src(src1)) > -#define _AND(dst, src0, src1) ureg_AND(ureg, dst, _src(src0), _src(src1)) > -#define _OR(dst, src0, src1) ureg_OR(ureg, dst, _src(src0), _src(src1)) > -#define _MOD(dst, src0, src1) ureg_MOD(ureg, dst, _src(src0), _src(src1)) > -#define _XOR(dst, src0, src1) ureg_XOR(ureg, dst, _src(src0), _src(src1)) > -#define _SAD(dst, src0, src1, src2) ureg_SAD(ureg, dst, _src(src0), > _src(src1), _src(src2)) > -#define _TXF(dst, target, src0, src1) ureg_TXF(ureg, dst, > TGSI_TEXTURE_##target, _src(src0), _src(src1)) > -#define _TXQ(dst, target, src0, src1) ureg_TXQ(ureg, dst, > TGSI_TEXTURE_##target, _src(src0), _src(src1)) > -#define _CONT() ureg_CONT(ureg) > -#define _EMIT() ureg_EMIT(ureg) > -#define _ENDPRIM() ureg_ENDPRIM(ureg) > -#define _BGNLOOP(label) ureg_BGNLOOP(ureg, label) > -#define _BGNSUB() ureg_BGNSUB(ureg) > -#define _ENDLOOP(label) ureg_ENDLOOP(ureg, label) > -#define _ENDSUB() ureg_ENDSUB(ureg) > -#define _NOP() ureg_NOP(ureg) > -#define _NRM4(dst, src) ureg_NRM4(ureg, dst, _src(src)) > -#define _CALLNZ(src) ureg_CALLNZ(ureg, _src(src)) > -#define _IFC(src) ureg_IFC(ureg, _src(src)) > -#define _BREAKC(src) ureg_BREAKC(ureg, _src(src)) > -#define _KIL(src) ureg_KIL(ureg, _src(src)) > -#define _END() ureg_END(ureg) > - > #endif > + > -- > 1.6.3.3 > > > ------------------------------------------------------------------------------ > This SF.Net email is sponsored by the Verizon Developer Community > Take advantage of Verizon's best-in-class app development support > A streamlined, 14 day to market process makes app distribution fast and easy > Join now and get one step closer to millions of Verizon customers > http://p.sf.net/sfu/verizon-dev2dev > _______________________________________________ > Mesa3d-dev mailing list > Mesa3d-dev@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mesa3d-dev > ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev