summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600/r600_asm.c
AgeCommit message (Collapse)Author
2011-01-07r600g: Store kcache settings as an array.Henri Verbeet
2011-01-06r600g: add support for NI (Northern Islands) GPUsAlex Deucher
This adds support for Barts, Turks, and Caicos asics.
2011-01-04r600g: support up to 64 shader constantsAlex Deucher
From the r600 ISA: Each ALU clause can lock up to four sets of constants into the constant cache. Each set (one cache line) is 16 128-bit constants. These are split into two groups. Each group can be from a different constant buffer (out of 16 buffers). Each group of two constants consists of either [Line] and [Line+1] or [line + loop_ctr] and [line + loop_ctr +1]. For supporting more than 64 constants, we need to break the code into multiple ALU clauses based on what sets of constants are needed in that clause. Note: This is a candidate for the 7.10 branch. Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2010-12-07r600g: remove dead codeJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-06r600g: build fetch shader from vertex elementsJerome Glisse
Vertex elements change are less frequent than draw call, those to avoid rebuilding fetch shader to often build the fetch shader along vertex elements. This also allow to move vertex buffer setup out of draw path and make update to it less frequent. Shader update can still be improved to only update SPI regs (based on some rasterizer state like flat shading or point sprite ...). Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-03r600g: dump raw shader output for debuggingJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-11-22r600g: add support for ontario APUsAlex Deucher
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2010-11-19r600g: use meaningful defines for chiprevAlex Deucher
Makes the code much clearer.
2010-11-19r600g: add fetch shader capabilitiesJerome Glisse
Use fetch shader instead of having fetch instruction in the vertex shader. Allow to restrict shader update to a smaller part when vertex buffer input layout changes. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-11-17r600g: code cleanup (indent, trailing space, empty line ...)Jerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-10-27r600g: Silence uninitialized variable warnings.Vinson Lee
2010-10-26r600g: add assembler support for all the kcache fields.Dave Airlie
2010-10-24r600g: Also clear bc data when we're destroying a shader.Tilman Sauerbeck
[airlied: remove unused vars] Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de> Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-10-05r600g: drop use_mem_constant.Dave Airlie
since we plan on using dx10 constant buffers everywhere.
2010-10-01r600g: add assembler support for other vtx fetch fields.Dave Airlie
this shouldn't change behaviour, just push the choice of what to do out to the shader.
2010-09-29r600g: delete old pathJerome Glisse
Lot of clean can now happen. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-09-24r600g: break alu clause earlierAndre Maasikas
we still have constants to add and next int may need also 6 slots
2010-09-21r600g: deal with overflow of VTX/TEX CF clauses.Dave Airlie
running piglit's texrect-many caused the vtx to overflow.
2010-09-19r600g: only emit uses waterfall on r6xx hw.Dave Airlie
2010-09-19r600g; add uses waterfall to asm cf for r6xx.Dave Airlie
On r6xx if an MOVA instruction is emitted we should set this bit.
2010-09-15r600g: misc cleanupJohn Doe
Avoid using r600_screen structure to get ptr to radeon winsys structure. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-09-15r600g: Silence uninitialized variable warning.Vinson Lee
2010-09-10r600g: fix warning in r600 pipe driverDave Airlie
2010-09-10r600g: add initial evergreen supportDave Airlie
adds shader opcodes + assembler support (except ARL) uses constant buffers add interp instructions in fragment shader adds all evergreen hw states adds evergreen pm4 support. this runs gears for me on my evergreen
2010-09-08r600g: add initial bank swizzle support.Dave Airlie
this is ported from r600c mostly, bank swizzling is real messy and I don't think I got enough sleep last night to fully understand it.
2010-09-08r600g: split opcodes out and add wrapper around usage.Dave Airlie
This splits the r600 opcodes out of the sq file and adds a wrapper so we can convert to evergreen opcodes later without touching these functions too much.
2010-09-08r600g: add support for constants in memory buffers.Dave Airlie
DX9 constants were in the constant file, and evergreen no longer support cfile. r600/700 can also use constants in memory buffers, so add the code (disabled for now) to enable that as precursor for evergreen.
2010-09-06r600g: add missing printf operandDave Airlie
2010-08-31r600g: add missing literalsDave Airlie
Also add an error if we hit this problem again, we need to do this better possibly tying the literal addition to the last flag. Signed-off-by: Dave Airlie <airlied@redhat.com>
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: 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-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-19r600g: add a chiprev type for r600/r700/evergreen instead of using familyDave Airlie
2010-08-11r600g: accept empty frag prog shaderJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-10r600g: avoid reemiting literal, avoid scheduling empty csJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-08-09r600g: fix some warningsMarek Olšák
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-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-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: 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>