History log of /external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
1906d2b46b21a8e7496409e0639d8463ad86dcfe 27-Jun-2012 Marcin Slusarz <marcin.slusarz@gmail.com> nv50: dynamically allocate space for shader local storage

Fixes 21 piglit tests:
spec/glsl-1.10/execution/variable-indexing/
fs-temp-array-mat4-index-col-row-wr
vs-temp-array-mat4-index-col-row-wr
vs-temp-array-mat4-index-row-wr

spec/glsl-1.20/execution/variable-indexing/
fs-temp-array-mat3-index-col-row-rd
fs-temp-array-mat3-index-row-rd
fs-temp-array-mat4-col-row-wr
fs-temp-array-mat4-index-col-row-rd
fs-temp-array-mat4-index-col-row-wr
fs-temp-array-mat4-index-row-rd
fs-temp-array-mat4-index-row-wr
vs-temp-array-mat3-index-col-row-rd
vs-temp-array-mat3-index-col-row-wr
vs-temp-array-mat3-index-row-rd
vs-temp-array-mat3-index-row-wr
vs-temp-array-mat4-col-row-wr
vs-temp-array-mat4-index-col-row-rd
vs-temp-array-mat4-index-col-row-wr
vs-temp-array-mat4-index-col-wr
vs-temp-array-mat4-index-row-rd
vs-temp-array-mat4-index-row-wr
vs-temp-array-mat4-index-wr

... and prevents a lot of GPU lockups
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
02fac2930581b9bea9f6d221eb6d6b471fc3b9c6 03-May-2012 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: implement stream output
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
0bbf1659df3adf51784bcb376e681c05f49b6070 14-Apr-2012 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: hook up to new shader code generator
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
6d1cdec3ba151168bfc3aef222fba6265dfb41fb 06-Apr-2012 Christoph Bumiller <e0425955@student.tuwien.ac.at> nouveau: switch to libdrm_nouveau-2.0
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
533bf171d4c926e4ab6fcd0d51396b195b9e024f 05-Mar-2011 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: support the InstanceID system value
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
f80c03e1875fe96ff2f4c022e3cb76357828140d 28-Feb-2011 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: replace most of it with nvc0 driver ported to nv50

We'll have to do some unification now to reduce code duplication.
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
275a81af13624be70566e190d4dd1f457ea1ff33 18-Sep-2010 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: add relocs for stack and local mem buffers
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
3a62365f402b1159afd526fb4b510cdb51de1365 16-Sep-2010 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: get shader fixups/relocations into working state
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
68cfc8e996fc33ec680c4153e862dcc762e760fc 15-Sep-2010 Brian Paul <brianp@vmware.com> nv50: use unsigned int for bitfields to silence warnings
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
26fe16a99b762d27e8f499c2e02116e9c4b7a6bb 15-Sep-2010 Christoph Bumiller <e0425955@student.tuwien.ac.at> Merge remote branch 'origin/nv50-compiler'

Conflicts:
src/gallium/drivers/nouveau/nouveau_class.h
src/gallium/drivers/nv50/nv50_screen.c
1fa812d84aa4dcb03f3e64fd46abe5b02ac985d1 12-Sep-2010 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: match TEMP limit with nv50 ir builder

Mesa doesn't respect it anyway, but this makes it assert rather
than threads access areas of l[] that don't belong to them.
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
f30810cb68a53c4fef360778a230126ed0ee0ee3 09-Sep-2010 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: use actual loads/stores if TEMPs are accessed indirectly
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
d91b8865ec2bb41f9b58ad5ce2df7f6f48f98281 07-Sep-2010 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: prepare for having multiple functions

At some point we'll want to support real subroutines instead of
just inlining them into the main shader.

Since recursive calls are forbidden, we can just save all used
registers to a fixed local memory region and restore them on a
return, no need for a stack pointer.
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
217542a061ef31150b1b04f1b45b6099bcc153fe 05-Sep-2010 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: save tgsi instructions
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
e08f70a41d1012a0270468866614485a3415168e 31-Aug-2010 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: make use of TGSI immediate type
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
3a68fcfb6b406cf864afbf200e436fc384fd0865 10-Aug-2010 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: begin implementing loops
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
633f5ac6124b1b57152c09becba92d176e905ae9 23-Jul-2010 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: import new compiler
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
0ae3db173455a77355b4e0ee6deeb862803e3d1c 16-Jan-2010 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: handle all and more system values
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
bbb615382d60aa927913b5d1e834727854419438 16-Jan-2010 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: support for geometry programs in nv50_program
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
d29f55546dec74ca77dce3a3bf581c251be1d397 24-Dec-2009 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: make edgeflags work

It doesn't seem to be possible to set the egdeflag in the
vertex shader, so we need to fallback to pushing vertices
through the FIFO and use method 0x15e4 if they are used.

This only works if VP does MOV OUT[X] IN[Y] where X is the
edgeflag output, and Y is saved so we can tell the correct
input later.

The VP still writes the useless values to wasted outputs
as punishment.
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
1778ddaf74aba72df167769bf42150810aac91a3 14-Dec-2009 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: store immediates as uint32

Sometimes we want non-float immediates, hacking them into
floats isn't nice.

Sorry, this should have already been committed before.
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
7494b829052a87d7a8c56c68300a110b40e401e8 29-Nov-2009 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: match VP outputs to FP inputs ourselves

For each FP input, don't assume that the VP output will be
at the same position, but scan the semantics instead, then
put the correct output reg indices into VP_RESULT_MAP.

Position is still assumed to be the first output/input.

See 07fafc7c9346aa260829603bf3188596481e9e62, which renders
previous assumptions incorrect.
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
750c6cae3d6f5b24c0c51537a5717894675645c6 15-Sep-2009 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: let programs use the whole param buffer

Allocation is unnecessary since all uniforms are
uploaded on every constant buffer change anyway.
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
06dac41cc50303fe767041dcb4b2192763dd9c16 15-Sep-2009 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: add support for point size per vertex
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
6516594c8eec1088ee59e7c3254b2fdced2ff04b 14-Sep-2009 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: proper linkage between VP and FP

This moves construction of the mapping between VP outputs
and FP inputs into validation.

The map also contains slots for special outputs like clip
distance and point size, so we need to at least merge the
VP related and FP related parts on validation if we want
to support those.

Now we match every single FP input component with results
from the VP and leave those not read out of the map, or
replace those not written by 0 (xyz) or 1 (w).
The bitmap indicating linear interpolants is also filled,
and flat FP inputs are mapped in only after non-flat ones,
as is required.

Furthermore, we can save some space by only fetching VP
attrs we actually use, and avoid wasting any output regs
because of TGSI using less than 4 components.
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
072fdc1fd325256d87b182d4f55c8a5838119cf0 04-Jun-2009 Ben Skeggs <bskeggs@redhat.com> nouveau: pass nouveau_bo instead of pipe_buffer to so_ calls
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
94ba165dffa4d364a1335d3cd7c15558bf35fe3e 23-May-2009 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: use multiple constant buffers

Use different buffers for immds, FP params, and VP params.
One has to map constant buffer indices in shader code to buffers
defined via CB_DEF. In principle, we could use more buffers so
we'd have to change the shader code less frequently.
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
dd9ded42b9ff75aa0bbabef30d385a9f77851dce 23-May-2009 Christoph Bumiller <e0425955@student.tuwien.ac.at> nv50: modified FP attribute loading

VP outputs that should be loadable in the FP are mapped to
interpolant indices by HPOS, COL0 etc.; of course HPOS is
always written, so the highest byte of 1988 is a bitmask that
selects which components of HPOS are used for interpolants,
i.e. the FP inputs in COL0 start at index POPCNT(1988[24:28]).
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
fda01b584715c05696a0e6768fda669ef1eb5f3b 07-Aug-2008 Ben Skeggs <skeggsb@localhost.localdomain> nouveau: fix build
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
fea0b1651677444fc6c135e1a4b8ab6463a9fdf9 15-Jun-2008 Ben Skeggs <skeggsb@gmail.com> nv50: a couple more bits'n'pieces
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
aea1669ff221f97682f0be6a60632e40c2739d09 11-Jun-2008 Ben Skeggs <skeggsb@gmail.com> nv50: use constbuf segment 0 for everything - I can't make the others work..
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
40137ea2631a0c8158f99ae30ca90ed038b72076 11-Jun-2008 Ben Skeggs <skeggsb@gmail.com> nv50: carry instructions around in nv50_program_exec, not a flat array
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h
19a1e9015e4ae429ab26e56848104fa209590338 11-Jun-2008 Ben Skeggs <skeggsb@gmail.com> nv50: rename nv50_state.h to nv50_program.h
/external/mesa3d/src/gallium/drivers/nv50/nv50_program.h