summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600/r600_shader.c
AgeCommit message (Collapse)Author
2010-08-24r600g: add XPD supportDave Airlie
ported from r600c.
2010-08-24r600g: add CMP support.Dave Airlie
ported from r600c, fixes fp-cmp, glsl1-sqrt*
2010-08-23r600g: export one component per pixel + r7xx uncompression shaderJerome Glisse
We need to always at least export one component (wether it's depth or color. Add valid r7xx shader program for depth decompression. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-22r600g: depth buffer likely needs decompression when used as textureJerome Glisse
Before using depth buffer as texture, it needs to be decompressed (tile pattern of db are different from one used for colorbuffer like texture) Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-21r600g: partialy fix texturing from depth buffer + initial support for untilingJerome Glisse
Partialy fix texturing from depth buffer, depth buffer is tiled following different tile organisation that color buffer. This properly set the tile type & array mode field of texture sampler when sampling from db resource. Add initial support to untiling buffer when transfering them, it's kind of broken by corruption the vertex buffer of previous draw. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-20r600g: add POW instructionJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-20r600g: cleanup definition, fix segfault when no valid pixel shaderJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-19r600g: update comments about ALU src operandsAlex Deucher
2010-08-19r600g: add sin/cosDave Airlie
This pretty much ports the code from r600c, however it doesn't always seem to work quite perfectly, but I can't find anything in this code that is wrong. I'm guessing either literal input or constants aren't working always.
2010-08-19r600g: add SSG, SEQ, SGT and SNEDave Airlie
2010-08-18r600g: add FRC, FLR, DDX and DDYDave Airlie
the first two are straight op2's and the DDX/DDY are taken from r600c.
2010-08-18r600g: add SGE and SLE opcodesDave Airlie
fixes fp-set-01 and glsl-fs-step
2010-08-18r600g: add TXB supportDave Airlie
fixes biased texturing tests
2010-08-18r600g: fix TXP vs TEX in shader.Dave Airlie
Don't do perspective for TEX, and also copy input to a temporary for TEX also add tex opcode names
2010-08-18r600g: add two simple tgsi opcodes.Dave Airlie
makes glsl-fs-log2 and glsl1-integer division with uniform var pass
2010-08-17r600g: fix fake pixel outputJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-11r600g: accept empty frag prog shaderJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-11r600g: add src negation supportJerome Glisse
Should fix few glBitmap cases. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-11r600g: add point/sprite rendering supportJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-06r600g: really fix multi target supportJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-06r600g: finish multi target rendering supportJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-06Revert "r600g: don't use dynamic state allocation for states"Jerome Glisse
This reverts commit 9c949d4a4dd43b7889e13bdf683bcf211f049ced. Conflicts: src/gallium/drivers/r600/r600_context.h src/gallium/drivers/r600/r600_draw.c src/gallium/drivers/r600/r600_shader.c src/gallium/drivers/r600/r600_state.c
2010-08-06r600g: start to fix up multiple targets.Dave Airlie
fixup exports from pixel shader for multi-cbs + depth buffer writing. Still crashes GPU running any of the multi-buffer or depth writing
2010-08-05r600g: don't use dynamic state allocation for statesJerome Glisse
Simplify state handly by avoiding state allocation. Next step is to allocate once for all context packet buffer and then avoid rebuilding pm4 packet each time (through use of combined crc) this would also avoid number of memcpy. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-04r600g: always perform texture perspective divide + fix blendingJerome Glisse
quake3 engine seems to run fine at this point (ioquake) Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-03r600g: add polygon offset supportJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-03r600g: fix LIT + fix multiple constant one ALU + fix ALU block splittingJerome Glisse
Make sure LIT fills all slot for instruction (can't do W instruction without having the Z slot filled with at least a NOP). ALU instruction can't access more than 4 constant, move constant to temporary reg if we reach the limit. Fix ALU block splitting, only split ALU after ALU with last instruction bit sets. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-02r600g: split alu block to conform to limit + RCP opcodeJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-02r600g: add autogenerated reg definition + debug print cleanupJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-02r600g: set correct tex coord type for rect textures.Dave Airlie
2010-07-30r600g: add KIL opcode supportJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-30r600g: fix typo in tex instruction + shader semantic id fixJerome Glisse
It seems we never get semantic id from TGSI so fallback to use output number as id. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-29r600g: mipmap early support + EX2/ABS instruction + cullingJerome Glisse
Add mipmap support (demos/src/redbook/mipmap is working) Add EX2/ABS shader instruction support. Add face culling support. Misc fixes. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-28r600g: switch btw flat/linear interpolationJerome Glisse
I am not sure how to properly handle flat shading regarding non color parameter to fragment shader. It seems we should still interpolate non color using linear interpolation and flat shade only apply to color. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-28r600g: split pipe state creating/binding from hw state creationJerome Glisse
Split hw vs pipe states creation handling as hw states group doesn't match pipe state group exactly. Right now be dumb about that and rebuild all hw states on each draw call. More optimization on that side coming. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-28r600g: add lrp instruction supportJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-28r600g: actualy fix the literal emissionJerome Glisse
Previous patch added literal emission to wrong place, we want to emit literal before emitting a new alu group. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-27r600g: texture supportJerome Glisse
Add texture mapping support, redbook/texbind works if you comment out glClear and second checkboard. Need to fix : - texture overwritting - lod & mip/map handling - unormalized coordinate handling - texture view with first leve > 0 - and many other things Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-27r600g: Move declaration before code.Vinson Lee
Fixes SCons build.
2010-07-27r600g: always emit literal after emiting an alu instructionJerome Glisse
Make sure we always fill in the literal after alu instruction. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-26r600g: implememt the LIT instructionStephan Schmid
2010-07-23r600g: first pass at texture supportJerome Glisse
This add texture support to the assembler, generated code is wrong (tested against working dump). Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-23r600g: fix dp2, dp3, dp4 tokensJerome Glisse
We need to make sure dp are all mirror accross the alu unit. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-23r600g: add RSQ token supportJerome Glisse
Could serve as an example on how to add more token support. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-23r600g: drop compiler stuff and switch over dumb tgsi assemblerJerome Glisse
Writing a compiler is time consuming and error prone in order to allow r600g to further progress in the meantime i wrote a simple tgsi assembler, it does stupid thing but i would rather keep the code simple than having people trying to optimize code it does. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-21r600g: add r600 compile mode to compiler.Dave Airlie
some of the ALU instructions are different on r6xx vs r7xx, separate the alu translation to separate files, and use family to pick which compile stage to use.
2010-07-20r600g: split trans unit computationJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-07-02r600: use gallium list macros instead of making our own.Dave Airlie
before this change, r600 glxinfo segfaulted in the list code, and I wasn't debugging another linked list implementation, its 2010 after all. So add the two missing list macros to the gallium header from X.org list header file (after fixing them), then port all r600 lists to the new header. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-06-06r600g: add shader literal constant supportJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-06-04r600g: use cast wrappersMarek Olšák