summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nvc0
Commit message (Collapse)AuthorAgeFilesLines
* nvc0: optimize blend cso by checking which by-RT data actually differsChristoph Bumiller2012-05-291-65/+94
| | | | Can save about 200 bytes of command buffer space.
* nvc0: don't upload UCPs if the shader doesn't use themChristoph Bumiller2012-05-291-1/+1
|
* nvc0/ir: allow 64-bit constant loads on nve4Christoph Bumiller2012-05-291-1/+1
| | | | Looks like only 128-bit access doesn't work.
* nvc0/ir: fix texture barrier insertion to prevent WAW hazardsChristoph Bumiller2012-05-292-21/+78
| | | | Fixes, for instance, object highlighting in Diablo 3 (wine).
* nvc0: don't set NEW_IDXBUF in nvc0_switch_pipe_context if none is boundChristoph Bumiller2012-05-221-0/+2
|
* nouveau: place static buffers in VRAM if preferred by the driverChristoph Bumiller2012-05-171-2/+5
|
* nv50/ir: fix reversed order of lane ops in quadopsChristoph Bumiller2012-05-171-2/+3
|
* nv50,nvc0: handle user vertex buffersChristoph Bumiller2012-05-176-160/+257
| | | | And restructure VBO validation a little in the process.
* nv50,nvc0: handle user index buffersChristoph Bumiller2012-05-174-24/+24
|
* nv50,nvc0: handle user constbufs without wrapping them in a resourceChristoph Bumiller2012-05-177-82/+91
|
* gallium: remove user_buffer_create from the interfaceMarek Olšák2012-05-121-1/+0
| | | | Nothing uses it now.
* Merge branch 'gallium-userbuf'Marek Olšák2012-05-112-4/+17
|\ | | | | | | | | | | | | | | Conflicts: src/gallium/docs/source/screen.rst src/gallium/drivers/nv50/nv50_state.c src/gallium/include/pipe/p_defines.h src/mesa/state_tracker/st_draw.c
| * gallium: add void *user_buffer to pipe_constant_bufferMarek Olšák2012-04-301-0/+10
| | | | | | | | This reduces CPU overhead when updating constants.
| * gallium: add void *user_buffer in pipe_index_bufferMarek Olšák2012-04-301-1/+1
| | | | | | | | | | | | | | Adapted drivers: i915, llvmpipe, r300, r600, radeonsi, softpipe. User index buffers have been disabled in nv30, nv50, nvc0 and svga to keep things working.
| * gallium: remove pipe_context::redefine_user_bufferMarek Olšák2012-04-301-2/+0
| |
| * gallium: add void *user_buffer in pipe_vertex_bufferMarek Olšák2012-04-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This reduces CPU overhead in st_draw_vbo and removes a lot of unnecessary code in that function which was required only to comply with the gallium interface, but wasn't any useful really. Adapted drivers: i915, llvmpipe, r300, softpipe. No changes required in: r600, radeonsi. User vertex buffers have been disabled in nv30, nv50, nvc0 and svga to keep things working.
| * gallium: change set_constant_buffer to be UBO-friendlyMarek Olšák2012-04-301-1/+2
| |
| * gallium: add PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENTMarek Olšák2012-04-301-0/+2
| | | | | | | | | | | | | | | | This is required for any serious constant buffer support. Constant buffer offsets on ATI and NVIDIA DX10 and DX11 GPUs must be a multiple of 256. In OpenGL, this can be queried via GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT.
| * gallium: add PIPE_CAP_USER_INDEX_BUFFERS and PIPE_CAP_USER_CONSTANT_BUFFERSMarek Olšák2012-04-301-0/+2
| |
* | nvc0/ir: allow abs,neg source modifiers with ceil,floor,truncChristoph Bumiller2012-05-061-0/+3
| |
* | nvc0/ir: fix lowering of textureGradChristoph Bumiller2012-05-062-8/+9
|/
* nv50,nvc0: fix depth/stencil resolveChristoph Bumiller2012-04-291-30/+141
| | | | | Cannot sample depth/stencil with a single view, and needed to use different shader code for nve4.
* nv50/ir/opt: try to convert ABS(SUB) to SADChristoph Bumiller2012-04-292-1/+17
|
* nvc0/ir: try to use the optimal texture op modeChristoph Bumiller2012-04-291-3/+15
| | | | | Don't really know what they are yet but for groups of textures, the last one should use mode "p" and the others "t".
* nvc0/ir: initial implementation of nve4 scheduling hintsChristoph Bumiller2012-04-293-11/+597
|
* nvc0/ir: implement better placement of texture barriersChristoph Bumiller2012-04-291-7/+269
| | | | | Put them before first uses instead of right after the texturing instruction and cull unnecessary barriers.
* nvc0/ir/emit: fix emitTXQ 2nd srcChristoph Bumiller2012-04-291-1/+3
|
* nvc0/ir/target: integer ADD doesn't support ABS modifierChristoph Bumiller2012-04-291-0/+2
|
* nv50,nvc0: handle new vertex fetch capsChristoph Bumiller2012-04-241-0/+4
|
* nv50,nvc0: don't initialize the draw module, we don't use itChristoph Bumiller2012-04-243-2/+13
| | | | But some day we might (e.g. for blending 16 bpp formats on nv50).
* gallium drivers: report that user vertex buffers are supportedMarek Olšák2012-04-241-0/+2
|
* nv50,nvc0: prevent multiple flushes when user spins on get_query_resultChristoph Bumiller2012-04-191-18/+25
|
* nvc0: fix nve4 linear copiesChristoph Bumiller2012-04-161-1/+2
|
* nvc0: add initial support for nve4+ (Kepler) chipsetsChristoph Bumiller2012-04-1516-150/+767
| | | | | | | | | Most things that work on Fermi should work on Kepler too. There are a few performance optimizations left to do, like better placement of texture barriers and adding scheduling data to the shader instructions (without them, a thread group will be masked for 32 cycles after each single instruction issue).
* nv50/ir: import nv50 targetChristoph Bumiller2012-04-141-1/+1
|
* nv50/ir: fix off-by-ones in CSE and nvc0 insnCanLoadChristoph Bumiller2012-04-141-1/+1
|
* nv50/ir: rewrite the register allocator as GCRA, with spillingChristoph Bumiller2012-04-141-4/+2
| | | | | This is more flexible than the linear scan, and we don't need the separate allocation pass for constrained values anymore.
* nvc0: fix emission of 3rd src in SET_AND,OR,XORChristoph Bumiller2012-04-141-0/+3
|
* nv50/ir: Build a "symbol" table with the binary offsets of each function.Francisco Jerez2012-04-141-0/+2
|
* nv50/ir: Decouple object cloning logic from the sub-object recursion policy.Francisco Jerez2012-04-141-2/+2
|
* nv50/ir: make Instruction::src/def container privateChristoph Bumiller2012-04-143-165/+171
|
* nv50/ir/opt: improve post-multiply and check target for supportChristoph Bumiller2012-04-142-0/+13
|
* nv50/ir: add isAccessSupported check for memory access coalescingChristoph Bumiller2012-04-143-1/+12
|
* nv50,nvc0: fix handling of user vbufs with stride < access sizeChristoph Bumiller2012-04-143-18/+32
|
* nvc0: prefix all macro methods with MACROChristoph Bumiller2012-04-146-35/+36
| | | | Some of them have non-macro counterparts.
* nvc0: replace VERTEX_DATA push mode with translate to bufferChristoph Bumiller2012-04-145-57/+748
| | | | | While pushing vertices through the FIFO is relatively fast on nv50, it's horribly slow on nvc0.
* nvc0: improve vertex state validationChristoph Bumiller2012-04-146-97/+159
| | | | Now updating vertex attribute format only when necessary.
* nvc0: track texture dirty state individuallyChristoph Bumiller2012-04-145-40/+81
|
* nv50,nvc0: use new scratch buffers codeChristoph Bumiller2012-04-145-53/+33
|
* nvc0: only force early fragment tests if requested by shaderChristoph Bumiller2012-04-145-14/+7
|