summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600/r600_shader.c
AgeCommit message (Collapse)Author
2010-08-30r600g: add DST opcode support.Dave Airlie
2010-08-30r600g: add SCS support.Dave Airlie
2010-08-30r600g: fix warning introduced by last commit.Dave Airlie
2010-08-30r600g: add initial relative support to assemblerDave Airlie
passes another ~20 piglits. /me starts to run out low hanging fruit around now.
2010-08-30r600g: add KILP supportDave Airlie
passes glsl1-discard tests
2010-08-30r600g: fix SSG and op3 neg writingDave Airlie
8 more piglits, mainly the two SSG tests.
2010-08-30r600g : add basic loop support.Dave Airlie
Adds BGNLOOP, BRK, CONT, ENDLOOP support, ported from r600c. 17 piglits more on r300g.tests.
2010-08-30r600g: use the values from the correct literalsBas Nieuwenhuizen
Created an array for literals as we should not always use the last declared literal. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-08-30r600g: added literals where needed for POW instructionBas Nieuwenhuizen
Fixes size calculation for the bytecode buffer. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-08-27Revert "r600g: simplify states"Dave Airlie
This reverts commit bd25e23bf3740f59ce8859848c715daeb9e9821f. Apart from introducing a lot of hex magic numbers and being highly impenetable code, it causes lots of lockups on an average piglit run that always runs without lockups. Always run piglit before/after doing big things like this.
2010-08-27r600g: add initial if/else/endif supportDave Airlie
this adds handling for some more CF instructions and conditions also adds parameter for stack size emission These seem to pass on VS with the stack size hack but not on FS, TODO: fix FS + stack size calcs
2010-08-27r600g: optimise op2 and swapped op2 emission.Dave Airlie
this makes op2 emission smaller, since it skips instructions that don't write to the dst. not sure if this could have unwanted side effects but try it and see.
2010-08-27r600g: add exp support in theory.Dave Airlie
though it isn't passing the test, and this instruction is pure bonghits.
2010-08-27r600g: add DPH support.Dave Airlie
2010-08-25r600g: simplify statesJerome Glisse
Directly build PM4 packet, avoid using malloc (no states are bigger than 128 dwords), remove unecessary informations, remove pm4 building in favor of prebuild pm4 packet. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
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>