History log of /external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6404095fbab74a6194081374bd56786d07c5d561 22-May-2012 Roy Spliet <r.spliet@student.tudelft.nl> nv30: Fix generic passing to fragment program in NV34.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
a2fc42b899de22273c1df96091bfb5c636075cb0 11-Jan-2012 Ben Skeggs <bskeggs@redhat.com> nv30: import new driver for GeForce FX/6/7 chipsets, and Quadro variants

The primary motivation for this rewrite was to have a maintainable driver
going forward, as nvfx was quite horrible in a lot of ways.

The driver is heavily based on the design of the nv50/nvc0 3d drivers we
already have, and uses the same common buffer/fence code. It also passes
a HEAP more piglit tests than nvfx did, supports a couple more features,
and a few more to come still probably.

The CPU footprint of this driver is far far less than nvfx, and translates
into far greater framerates in a lot of applications (unless you're using
a CPU that's way way newer than the GPUs of these generations....)

Basically, we once again have a maintained driver for these chipsets \o/

Feel free to report bugs now!
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
bcb37411fc9159a5c1af50b7defbf1f526b50793 21-Feb-2010 Luca Barbieri <luca@luca-barbieri.com> nv30, nv40: non-trivially unify nv[34]0_fragprog.c

The files are mostly the same except:
1. On NV40, some TGSI instructions are emulated with several hardware ones
2. Some instructions such as DDX/DDY, and STR were missing from nv30
3. NV40 has more sophisticated register management

nv30 now supports all instructions and uses the nv40 register management.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
d9e396ce4a124529fa92ad967f2b3ff72534079b 21-Feb-2010 Luca Barbieri <luca@luca-barbieri.com> nv30, nv40: non-trivially partially unify nv[34]0_shader.h

shader.h is similar, except for the following differences:
1. The instruction sets are not exactly the same, but mostly similar
2. Vertex program fields are in different bit positions

This patch unifies all parts of nv[34]0_shader.h except the vertex
program fields.

Vertex opcodes are also changed so that the constant names includes
SCA if it is a scalar opcode and VEC if it is a vector opcode.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
b8e56d4cddbd9c491b940e3ce5974c526802c752 20-Feb-2010 Luca Barbieri <luca@luca-barbieri.com> nv30, nv40: unify all structures and headers, except shaders

This patch unifies nv[34]0_screen.h, nv[34]0_context.h and
nv[34]0_state.h

The unified files are put in a new "nvfx" directory.

nv30_context.h and nv40_context.h still exist to hold the function
prototypes and include nvfx_context.h

nv[34]0_screen.h and nv[34]0_state.h are deleted, replaced by the
unified versions.

nv40 includes some extra fields for swtnl and user clip planes
support.

These fields will be unused on nv30 until that functionality gets
added to it too (by unification with nv40).
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
d673c92810636dcc6de33d3618d494ce9f5717c1 20-Feb-2010 Luca Barbieri <luca@luca-barbieri.com> nouveau: s/rankine/eng3d/g; s/curie/eng3d/g

Result of running:
perl -i -p -e 's/rankine/eng3d/g; s/curie/eng3d/g;' nv[34]0/*.[ch]

This will allow to more easily unify nv30 and nv40.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
1771d8f8f4256773de1883a033081f9cc4cddf00 20-Feb-2010 Luca Barbieri <luca@luca-barbieri.com> nv30: remove unused on_hw field and constant fp_reg_control field

This makes nv30_state.h equivalent to nv40_state.h
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
28486880ca3ec39419ccee0cb1a3bedc9ef7117c 02-Feb-2010 José Fonseca <jfonseca@vmware.com> gallium: pipe/p_inlines.h -> util/u_inlines.h
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
c77ade8fed2be933af3f493932cedee7ca868b04 29-Dec-2009 Maarten Maathuis <madman2003@gmail.com> nouveau: rewrite nouveau_stateobj to use BEGIN_RING properly

- The previous solution was hacky and didn't do subchannel autobinding.
- The beheaviour should match what libdrm_nouveau does closely.
- The solution remains statically sized, but when debugging is on it will check
for abuse.

Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
85dcc070719ef6a6bcf65dc4996b1733f63912d8 28-Dec-2009 Younes Manton <younes.m@gmail.com> nouveau: Unreference state/buffer objects on context/screen destruction.

- unreference state objects so that buffer objects are unreferenced and
eventually destroyed
- free channel at screen's destruction

Based on Krzysztof Smiechowicz's patch.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
a55e50b082ca068d35d695ff323603507e2b64aa 26-Dec-2009 Luca Barbieri <luca@luca-barbieri.com> NV30/NV40 CMP and SCS src == dst handling

CMP and SCS can produce incorrect results if the source and
destination are the same.
This patch should fix the issues.
CMP is fixed by predicating both moves.
SCS by changing the order if the source component is X.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
91a4e6d53f83c45c1da9240b6325011d96b61386 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: rename fields of tgsi_full_src_register to reduce verbosity

SrcRegister -> Register
SrcRegisterInd -> Indirect
SrcRegisterDim -> Dimension
SrcRegisterDimInd -> DimIndirect
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
5b0824dfe5eaf59fa87134e7482b3d147b262901 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: rename fields of tgsi_full_dst_register to reduce verbosity

DstRegister -> Register
DstRegisterInd -> Indirect
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
fe2b31e4a896167a33d267822b36eb2de0ceecba 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: rename fields of tgsi_full_declaration to reduce verbosity

DeclarationRange -> Range
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
7d6c8f980d1e23ad6f557d650e89c715861a3b0c 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: rename fields of tgsi_full_instruction to avoid excessive verbosity

InstructionPredicate -> Predicate
InstructionLabel -> Label
InstructionTexture -> Texture
FullSrcRegisters -> Src
FullDstRegisters -> Dst
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
763426a0256f0ab06f8af53947bd630f8600183a 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: reduce repetition of structure name in its members

Rename Semantic.SemanticName to Semantic.Name. Similar for
SemanticIndex, and the members of the tgsi_version struct.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
56ee132f9671f70ff2b3ee04659beac0dfc6126d 24-Nov-2009 Keith Whitwell <keithw@vmware.com> gallium: try and update r300 and nv drivers for tgsi changes

It would be nice if these drivers built under the linux-debug header
so that these types of interface changes can be minimally propogated
into those drivers by people without the hardware. They don't have to
generate a working driver -- though a command-dumping winsys would be
an excellent for regression checking.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
49289f1d25d42a6b3eb5da5f85b2dd6a14cda8e7 17-Nov-2009 Patrice Mandin <patmandin@gmail.com> nouveau: nv30: Add missing include to fix warning
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
da253319f9e5d37d9c55b975ef9328545a3ac9b4 23-Oct-2009 Keith Whitwell <keithw@vmware.com> gallium: remove extended negate also, and also the ExtSwz token

Likewise, the extended negate functionality hasn't been
used since mesa switched to using tgsi_ureg to build programs,
and has been translating the SWZ opcode internally to a single MAD.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
b9cb74c7f826dfd320f5e5b54aa933898f7ddd3d 23-Oct-2009 Keith Whitwell <keithw@vmware.com> gallium: remove the swizzling parts of ExtSwizzle

These haven't been used by the mesa state tracker since the
conversion to tgsi_ureg, and it seems that none of the
other state trackers are using it either.

This helps simplify one of the biggest suprises when starting off with
TGSI shaders.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
4e1d51786e0657c7430d731ac464f2a73e32eddf 23-Oct-2009 Keith Whitwell <keithw@vmware.com> gallium: remove noise opcodes

Provide a dummy implementation in the GL state tracker (move 0.5 to
the destination regs).

At some point, a motivated person could add a better
implementation of noise. Currently not even the nvidia
binary drivers do anything more than this. In any case, the
place to do this is in the GL state tracker, not the poor
driver.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
fd31f92cea0ce8613a22d8f4b3c75b340bcc5689 22-Jul-2009 Keith Whitwell <keithw@vmware.com> gallium: simplify tgsi_full_immediate struct

Remove the need to have a pointer in this struct by just including
the immediate data inline. Having a pointer in the struct introduces
complications like needing to alloc/free the data pointed to, uncertainty
about who owns the data, etc. There doesn't seem to be a need for it,
and it is unlikely to make much difference plus or minus to performance.

Added some asserts as we now will trip up on immediates with more
than four elements. There were actually already quite a few such asserts,
but the >4 case could be used in the future to specify indexable immediate
ranges, such as lookup tables.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
6b3ca672eb85d30d6c28e91000e2cc2231a41bef 05-Jun-2009 Ben Skeggs <bskeggs@redhat.com> nouveau: remove unneeded code from ws, use pipe_buffer_ instead of ws->
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
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/nv30/nv30_fragprog.c
ca95d71a4bc63e2ea45abf9096a3da802819ef92 07-Mar-2009 Ben Skeggs <bskeggs@redhat.com> nouveau: make stateobjs start off with refcount of 1
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
5e27cd46c04a9e7b5904cc014bffd0f4daae31fe 04-Mar-2009 Michel Dänzer <daenzer@vmware.com> gallium: Unify reference counting.

The core reference counting code is centralized in p_refcnt.h.

This has some consequences related to struct pipe_buffer:

* The screen member of struct pipe_buffer must be initialized, or
pipe_buffer_reference() will crash trying to destroy a buffer with reference
count 0. u_simple_screen takes care of this, but I may have missed some of
the drivers not using it.
* Except for rare exceptions deep in winsys code, buffers must always be
allocated via pipe_buffer_create() or via screen->*buffer_create() rather
than via winsys->*buffer_create().
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
0c47bd0374e533f614ca3013f429fc32946e5be7 31-Aug-2008 Patrice Mandin <pmandin@caramail.com> nv30: set fp samplers with fragprog generation
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
f90e50dff9e5cdbad6e9bb74c0aeaaaa82242b25 18-Aug-2008 Stephane Marchesin <marchesin@icps.u-strasbg.fr> nv30: add some opcodes.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
dbec107c2549c00120ca6d67282f2a1a4bd8bdbd 13-Aug-2008 Ben Skeggs <skeggsb@gmail.com> nv30/nv40: KIL/KILP swapped meanings
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
fda01b584715c05696a0e6768fda669ef1eb5f3b 07-Aug-2008 Ben Skeggs <skeggsb@localhost.localdomain> nouveau: fix build
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
9489de99802e635271c1ae84630fc02892af1699 12-Jul-2008 Patrice Mandin <pmandin@caramail.com> nv30: was setting wrong register
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
58737dc87575625438d288fe2f816b6a9d2086f1 12-Jul-2008 Patrice Mandin <pmandin@caramail.com> nv30: Emit fragment program using state objects
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
c7086277546d065eb94ba8dbeca1620605f167ea 11-Jul-2008 Patrice Mandin <pmandin@caramail.com> nv30: Move constant buffers out of vert/frag prog structures
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
b327b064058aaab1debb1af08f4b9abe1385adc6 11-Jul-2008 Patrice Mandin <pmandin@caramail.com> nv30: split fragprog_upload from fragprog_bind
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
37a418b3b05db51aea0a1010bad8118b92e0e9d6 11-Jul-2008 Patrice Mandin <pmandin@caramail.com> nv30: split fragprog_prepare from fragprog_translate
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
28268f7b22905974a2cc3c099b1a842d20a7712a 08-Jul-2008 Stephane Marchesin <marchesin@icps.u-strasbg.fr> nv30: use native instructions.
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
5a01060eb95cb2cb168cb7224ecc805020584c91 22-Jun-2008 Ben Skeggs <skeggsb@gmail.com> nouveau: update for interface changes + hack around gallium x86_64 bustage
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
7b389f8d2f307fa0714494f2a43e9141cc04ed3e 30-Mar-2008 Patrice Mandin <pmandin@caramail.com> nv30: use FREE macro
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
9a4938d7033101122b627786273ff37229b5558a 12-Mar-2008 Ben Skeggs <skeggsb@gmail.com> nouveau: match interface changes
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
169912b71a4242389301890ef303046d49ce71df 11-Mar-2008 Patrice Mandin <pmandin@caramail.com> nv30: silence some warnings
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c
26add9288c88108e3485ffc57c51ea9bdc0ee719 16-Feb-2008 Ben Skeggs <skeggsb@gmail.com> nouveau: match gallium code reorginisation.

That was... fun..
/external/mesa3d/src/gallium/drivers/nv30/nv30_fragprog.c