summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nvc0
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* 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
|
* nv50,nvc0: hold references to the framebuffer surfacesChristoph Bumiller2012-04-142-1/+16
|
* nvc0: remove include of old libdrm_nouveau's nouveau_reloc.hChristoph Bumiller2012-04-141-2/+0
|
* nv50,nvc0: handle PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETSChristoph Bumiller2012-04-141-0/+2
|
* nouveau: switch to libdrm_nouveau-2.0Christoph Bumiller2012-04-1419-1461/+1469
|
* nvc0: remove obsolete nvc0_push2.cChristoph Bumiller2012-04-142-334/+0
| | | | | Slower version of nvc0_push.c, was only used to ascertain that bugs were not the new version's fault.
* nouveau: remove automatic buffer migration heuristicsChristoph Bumiller2012-04-141-3/+0
|
* gallium: adapt to get_query_result interface changeMarek Olšák2012-03-302-5/+5
| | | | Reviewed-by: Brian Paul <[email protected]>
* gallium/drivers: Use automake to generate makefileTom Stellard2012-03-141-0/+3
|
* nv50,nvc0: share the format table codeChristoph Bumiller2012-03-091-337/+2
|
* Revert "gallium: add flag PIPE_TRANSFER_MAP_PERMANENTLY"Marek Olšák2012-03-051-1/+1
| | | | | | | This reverts commit 0950086376b1c8b7fb89eda81ed7f2f06dee58bc. It was decided to refactor the transfer API instead of adding workarounds to address the performance issues.
* gallium: remove PIPE_SHADER_CAP_OUTPUT_READMarek Olšák2012-02-271-2/+0
| | | | | | | | | | | | r600g is the only driver which has made use of it. The reason the CAP was added was to fix some piglit tests when the GLSL pass lower_output_reads didn't exist. However, not removing output reads breaks the fallback for glClampColorARB, which assumes outputs are not readable. The fix would be non-trivial and my personal preference is to remove the CAP, considering that reading outputs is uncommon and that we can now use lower_output_reads to fix the issue that the CAP was supposed to workaround in the first place.
* gallium: add PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTIONChristoph Bumiller2012-02-091-0/+1
| | | | | | | Just let the hardware do it if it can and avoid drivers having to check for the special case on each draw call. v2: update the draw module
* nvfx,nv50,nvc0: handle PIPE_CAP_GLSL_FEATURE_LEVELChristoph Bumiller2012-01-291-0/+2
|
* st/mesa: do vertex and fragment color clamping in shadersMarek Olšák2012-01-251-1/+3
| | | | | | | | | | | | | | For ARB_color_buffer_float. Most hardware can't do it and st/mesa is the perfect place for a fallback. The exceptions are: - r500 (vertex clamp only) - nv50 (both) - nvc0 (both) - softpipe (both) We also have to take into account that r300 can do CLAMPED vertex colors only, while r600 can do UNCLAMPED vertex colors only. The difference can be expressed with the two new CAPs.