summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600/r600_shader.h
AgeCommit message (Collapse)Author
2011-02-07r600g: Store literal values in the r600_bc_alu_src structure.Henri Verbeet
This is much easier to work with, and allows use to get rid of some of the literal handling hacks.
2011-01-31r600g: handle the write all cbufs property.Dave Airlie
This only works on r600/r700 so far, evergreen doesn't appear to have the multiwrite enable bit in the color control, so we may have to actually do a shader rewrite on EG hardware. remove some duplicate code reg defines also. Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-01-13r600g: rework literal handlingChristian König
2010-12-07r600g: remove dead codeJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-06r600g: avoid useless shader rebuild at draw callJerome Glisse
Avoid rebuilding constant shader state at each draw call, factor out spi update that might change at each draw call. Best would be to update spi only when revealent states change (likely only flat shading & sprite point). Signed-off-by: Jerome Glisse <jglisse@redhat.com>
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-10-15r600g: evergreen interpolation support.Dave Airlie
On evergreen, interpolation has moved into the fragment shader, with the interpolation parmaters being passed via GPRs and LDS entries. This works out the number of interps required and reserves GPR/LDS storage for them, it also correctly routes face/position values which aren't interpolated from the vertex shader. Also if we noticed nothing is to be interpolated we always setup perspective interpolation for one value otherwise the GPU appears to lockup. This fixes about 15 piglit tests on evergreen.
2010-10-14r600g: only pick centroid coordinate when asked.Dave Airlie
TGSI tells us when to use this, its not hooked up from GLSL to MESA to TGSI yet though.
2010-10-05r600g: drop use_mem_constant.Dave Airlie
since we plan on using dx10 constant buffers everywhere.
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-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-08-30r600g: add KILP supportDave Airlie
passes glsl1-discard tests
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-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-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-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-05-31r600g: remove unused struct r600_stateMarek Olšák
What was the purpose of it?
2010-05-27r600g: fix driver + shader compiler backend changeJerome Glisse
Change the way we translate from c_compiler to the asic specific representation. Should make things simpler. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-05-27r600g: Initial importJerome Glisse