summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nv30/nv30_state.c
Commit message (Collapse)AuthorAgeFilesLines
* Move nv30, nv50 and nvc0 to nouveau.Johannes Obermayr2013-09-111-458/+0
| | | | | | | | | | | | | | | | It is planned to ship openSUSE 13.1 with -shared libs. nouveau.la, nv30.la, nv50.la and nvc0.la are currently LIBADDs in all nouveau related targets. This change makes it possible to easily build one shared libnouveau.so which is then LIBADDed. Also dlopen will be faster for one library instead of three and build time on -jX will be reduced. Whitespace fixes were requested by 'git am'. Signed-off-by: Johannes Obermayr <[email protected]> Acked-by: Christoph Bumiller <[email protected]> Acked-by: Ian Romanick <[email protected]>
* gallium: Add support for multiple viewportsZack Rusin2013-05-251-6/+10
| | | | | | | | | | | | Gallium supported only a single viewport/scissor combination. This commit changes the interface to allow us to add support for multiple viewports/scissors. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: José Fonseca<[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* mesa: Restore 78-column wrapping of license text in C-style comments.Kenneth Graunke2013-04-231-4/+4
| | | | | | | | | | | | | | The previous commit introduced extra words, breaking the formatting. This text transformation was done automatically via the following shell command: $ git grep 'THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY' | sed 's/:.*$//' | xargs -I {} sh -c 'vim -e -s {} < vimscript where 'vimscript' is a file containing: /THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY/;/\*\// !fmt -w 78 -p ' * ' :wq Reviewed-by: Brian Paul <[email protected]>
* mesa: Add "OR COPYRIGHT HOLDERS" to license text disclaiming liability.Kenneth Graunke2013-04-231-1/+1
| | | | | | | | | | | | | | | This brings the license text in line with the MIT License as published on the Open Source Initiative website: http://opensource.org/licenses/mit-license.php Generated automatically be the following shell command: $ git grep 'THE AUTHORS BE LIABLE' | sed 's/:.*$//g' | xargs -I '{}' \ sed -i 's/THE AUTHORS/THE AUTHORS OR COPYRIGHT HOLDERS/' {} This introduces some wrapping issues, to be fixed in the next commit. Reviewed-by: Brian Paul <[email protected]>
* gallium: add start_slot parameter to set_vertex_buffersMarek Olšák2012-10-311-9/+4
| | | | | | | | | | | | | | | | | | | | | This allows updating only a subrange of buffer bindings. set_vertex_buffers(pipe, start_slot, count, NULL) unbinds buffers in that range. Binding NULL resources unbinds buffers too (both buffer and user_buffer must be NULL). The meta ops are adapted to only save, change, and restore the single slot they use. The cso_context can save and restore only one vertex buffer slot. The clients can query which one it is using cso_get_aux_vertex_buffer_slot. It's currently set to 0. (the Draw module breaks if it's set to non-zero) It should decrease the CPU overhead when using a lot of meta ops, but the drivers must be able to treat each vertex buffer slot as a separate state (only r600g does so at the moment). I can imagine this also being useful for optimizing some OpenGL use cases. Reviewed-by: Brian Paul <[email protected]>
* nv30: fix type conversion warningMarek Olšák2012-10-091-1/+1
|
* nv30: handle user index buffersChristoph Bumiller2012-05-251-1/+4
|
* gallium: add void *user_buffer to pipe_constant_bufferMarek Olšák2012-04-301-0/+10
| | | | This reduces CPU overhead when updating constants.
* gallium: remove pipe_context::redefine_user_bufferMarek Olšák2012-04-301-2/+0
|
* gallium: change set_constant_buffer to be UBO-friendlyMarek Olšák2012-04-301-1/+2
|
* nv30: import new driver for GeForce FX/6/7 chipsets, and Quadro variantsBen Skeggs2012-04-141-0/+447
| | | | | | | | | | | | | | | | | | 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!
* nv30, nv40: partially non-trivially unify sampler state in nv[34]0_state.cLuca Barbieri2010-03-151-179/+0
| | | | | | Many things, like texture wrap modes and min/mag filters are common. Some others, like annisotropy and lod settings, are not.
* nv30, nv40: partially unify nv[34]0_state.cLuca Barbieri2010-03-151-572/+1
| | | | | | | | | state.c is identical except for: 1. Sampler state creation is different 2. nv40 swtnl support 3. Separate blend equations on nv40 This patch unifies nv[34]0_state.c, except the sampler state creation code.
* nv30, nv40: non-trivially unify nv[34]0_fragprog.cLuca Barbieri2010-03-151-1/+1
| | | | | | | | | 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.
* nv30, nv40: unify all structures and headers, except shadersLuca Barbieri2010-03-151-127/+127
| | | | | | | | | | | | | | | | | | | 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).
* nouveau: s/rankine/eng3d/g; s/curie/eng3d/gLuca Barbieri2010-03-151-27/+27
| | | | | | | 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.
* nv30: adapt to vertex element csoRoland Scheidegger2010-03-011-6/+28
|
* gallium: make max_anisotropy a unsigned bitfield memberRoland Scheidegger2010-02-121-3/+3
| | | | | | | saves us a dword in sampler state, hw can't do non-integer aniso degree anyway. To allow aniso 1x (which seems of dubious value but some hardware (radeons) have such a mode, and even d3d allows specifiying it) redefine anisotropic filtering as disabled only if max_anistropy is 0.
* nv30: adapt to stencil ref changesRoland Scheidegger2010-02-111-5/+16
| | | | not sure if this has any hope of working
* Merge branch 'gallium-nopointsizeminmax'Roland Scheidegger2010-02-091-2/+2
|\ | | | | | | | | | | | | Conflicts: src/gallium/drivers/nv10/nv10_state.c src/gallium/drivers/nv20/nv20_state.c src/gallium/drivers/nv50/nv50_program.c
| * gallium: add point_quad_rasterization bit to rasterizer stateRoland Scheidegger2010-02-041-1/+1
| | | | | | | | | | This determines if points should be rasterized according to GL point rules or as normal quads (GL point sprites / d3d points / d3d point sprites).
| * gallium: clean up point sprite rasterizer stateRoland Scheidegger2010-02-031-2/+2
| | | | | | | | | | | | | | | | | | | | Don't need sprite coord origin per coord. Also, don't need separate sprite enable bit - if all coords have it diabled, then there are no point sprites (technically, there's a distinction in pre-GL3, but it only differs in having more leniency in clamping to max size, something the state tracker would need to handle and the hardware won't bother anyway). Also, use packed field for the per-coord enables. All in all, should save 3 dwords in rasterizer state (from 10 down to 7).
* | gallium: pipe/p_inlines.h -> util/u_inlines.hJosé Fonseca2010-02-021-1/+1
| |
* | nouveau: adapt drviers to blend changesRoland Scheidegger2010-01-251-10/+10
| |
* | Merge branch 'gallium-noconstbuf'Roland Scheidegger2010-01-151-3/+3
|\ \ | |/ |/| | | | | | | Conflicts: src/gallium/drivers/softpipe/sp_draw_arrays.c src/mesa/state_tracker/st_draw_feedback.c
| * gallium: remove const qualifier from pipe_buffer argument in set_constant_bufferRoland Scheidegger2010-01-111-1/+1
| |
| * gallium: adapt drivers to pipe_constant_buffer removalRoland Scheidegger2009-12-241-3/+3
| |
* | nouveau: rewrite nouveau_stateobj to use BEGIN_RING properlyMaarten Maathuis2010-01-051-3/+3
|/ | | | | | | | | - 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 <[email protected]>
* gallium: fix up drivers for edgeflag changesRoland Scheidegger2009-12-191-11/+0
| | | | | several drivers which chose to ignore edgeflags might require some more work, while edgeflags never worked there they might now crash.
* nv: Update for renamed sampler/texture state setters.Michal Krol2009-12-011-2/+2
|
* nouveau: make stateobjs start off with refcount of 1Ben Skeggs2009-03-071-0/+3
|
* gallium: remove redundant size from the constant bufferZack Rusin2009-01-271-1/+1
| | | | reuse the size of the actual buffer
* gallium: it's a reference value, not a reference numberZack Rusin2009-01-271-1/+1
|
* gallium: standardize naming of masksZack Rusin2009-01-271-4/+4
|
* nouveau: nv30 does not support separate blend functions for alpha and rgbPatrice Mandin2009-01-211-2/+3
|
* nouveau: gallium directory structure changed again..Ben Skeggs2008-09-111-1/+0
|
* nv30: set mipmap min/max lod accordinglyPatrice Mandin2008-08-141-2/+2
|
* nv30: disable setting nv40 RECT bit, this is not the same on nv30, plus ↵Patrice Mandin2008-08-141-2/+4
| | | | gallium does not support rectangle textures currently, only full POT or NPOT
* nouveau: fix buildBen Skeggs2008-08-071-1/+1
|
* nv all: Copy shader tokens on create, free on delete.Younes Manton2008-07-231-2/+6
| | | | | Must copy token stream on shader create, client is allowed to free their copy after creating the state object.
* nv30: Emit vertex buffer objects using state objectsPatrice Mandin2008-07-121-0/+6
|
* nv30: Move edgeflag stuffPatrice Mandin2008-07-121-0/+11
|
* nv30: Emit fragment program using state objectsPatrice Mandin2008-07-121-6/+3
|
* nv30: Emit vertex program using state objectsPatrice Mandin2008-07-121-6/+5
|
* nv30: Move constant buffers out of vert/frag prog structuresPatrice Mandin2008-07-111-2/+3
|
* nv30: Update defines from nouveau_class.hPatrice Mandin2008-07-091-28/+18
|
* nv30: Emit sampler state using state objectsPatrice Mandin2008-07-041-7/+35
|
* nv30: Emit viewport state using state objectsPatrice Mandin2008-07-031-9/+3
|
* nv30: Emit polygon stipple state using state objectsPatrice Mandin2008-07-031-2/+2
|
* nv30: Emit scissor state using state objectsPatrice Mandin2008-07-031-3/+2
|