summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
Commit message (Collapse)AuthorAgeFilesLines
* r600g/llvm:translate ARL opcode to a simple castVincent Lejeune2013-01-181-2/+12
| | | | Reviewed-by: Tom Stellard <[email protected]>
* r600g/llvm: rework handling of the constantsVadim Girlin2013-01-183-16/+54
| | | | | | | | | | | | Vincent Lejeune: - tgsi to llvm now emits pointers for constants Tom Stellard: - Only use texture cache for vtx fetch with compute shaders - Change address space used for constant loads to match LLVM backend. Reviewed-by: Tom Stellard <[email protected]>
* llvmpipe: turn on integer texture supportRoland Scheidegger2013-01-181-6/+16
| | | | | | | | | | Now that things mostly seem to work enable those formats. Some formats cause crashes (notably RGB8 variants) so switch these off (these crashes are not specific to INT/UINT variants but the state tracker doesn't use them for UNORM etc. formats so it went unnoticed so far). Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* llvmpipe: more fixes for integer color buffersRoland Scheidegger2013-01-181-3/+39
| | | | | | | | | | | | Cast back the fake floats to ints, and make sure we don't try to do scaling in format conversion (which only makes sense with normalized values). Also need to disable blending and alpha test (as per spec) for such buffers. This makes fbo-blending from the piglit ext_texture_integer tests work for most formats (some crash, and the luminance and intensity variants have the GB or GBA channels respectively wrong). Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* llvmpipe: trivial code and comment cleanup.Roland Scheidegger2013-01-181-14/+12
| | | | | Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* llvmpipe: fix using wrong format with MRT in blend codeRoland Scheidegger2013-01-184-11/+26
| | | | | | | | | | | | | We were passing in the rt index however this was always 0 for non-independent blend case. (The format was only actually used to decide if the color mask covered all channels so this went unnoticed and was discovered by accident.) Additionally, there was a second problem because we do fixups in the key based on color buffer format we cannot use non-independent blend anyway as the fixed up values would never get used. So always turn non-independent blending into independent. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* radeonsi: Actually keep track if we are using depth textures for samplers.Michel Dänzer2013-01-171-3/+7
| | | | | | | 20-odd more piglits. Reviewed-by: Christian König <[email protected]> Signed-off-by: Michel Dänzer <[email protected]>
* radeonsi: Fix Z24 texture formats.Michel Dänzer2013-01-171-2/+2
| | | | | | | About half a dozen more piglits. Reviewed-by: Christian König <[email protected]> Signed-off-by: Michel Dänzer <[email protected]>
* radeonsi: Set SPI_SHADER_COL_FORMAT to what the pixel shader actually exports.Michel Dänzer2013-01-175-7/+14
| | | | | | | | | Instead of deriving it from the colour buffer formats only. Fixes a number of piglit tests which export depth from the pixel shader. Reviewed-by: Christian König <[email protected]> Signed-off-by: Michel Dänzer <[email protected]>
* radeonsi: Use proper hardware format for stencil texturing.Michel Dänzer2013-01-171-1/+2
| | | | | | | Fixes piglit 'spec/ARB_depth_buffer_float/fbo-clear-formats stencil' crash. Reviewed-by: Christian König <[email protected]> Signed-off-by: Michel Dänzer <[email protected]>
* radeonsi: Enable tiling for depth/stencil resources.Michel Dänzer2013-01-171-4/+3
| | | | | | | | | | | Enabling it for all resources still seems to cause problems, but depth/stencil buffers are always accessed with tiling by the DB block. Also, stick to 1D tiling for now. Getting 2D tiling to work properly will require substantial changes in libdrm_radeon and possibly the kernel as well. Reviewed-by: Christian König <[email protected]> Signed-off-by: Michel Dänzer <[email protected]>
* radeonsi: Consolidate calculation of tile mode index.Michel Dänzer2013-01-171-111/+71
| | | | | | | | Apart from the obvious cleanup, this makes sure all blocks use the same tiling mode for accessing the resource. Reviewed-by: Christian König <[email protected]> Signed-off-by: Michel Dänzer <[email protected]>
* nvc0: add support for accelerated video decoding through the dedicated enginesMaarten Lankhorst2013-01-176-3/+1833
| | | | | | Currently the use of external firmware is required, with kernel and userspace firmware needed for all Fermi cards except nvd9. Kepler and nvd9 should only require kernel firmware.
* radeonsi: Pass texture type to sampling intrinsics.Michel Dänzer2013-01-171-4/+2
| | | | Signed-off-by: Michel Dänzer <[email protected]>
* nvc0: add space checks to clear functionsMaarten Lankhorst2013-01-171-5/+14
| | | | Thanks to calim for helping me find and fix the issue.
* nv50: add space checks to clear functions, and respect depthMaarten Lankhorst2013-01-171-13/+24
| | | | Thanks to calim for helping me find and fix the issue.
* nvc0: Add support for video bufferMaarten Lankhorst2013-01-167-11/+310
|
* r300g: fix and cleanup flushing before clearing CMASK, ZMASK, and HIZMarek Olšák2013-01-154-18/+17
|
* r300g: implement MSAA compression and fast MSAA color clearMarek Olšák2013-01-1513-6/+211
| | | | | | | | | | | | | | | | | | | | | | | | | | These are optimizations which make MSAA a lot faster. The MSAA work is complete with this commit. (except for enablement of AA optimizations for RGBA16F, for which a patch is ready and waiting until the kernel CS checker fix lands) MSAA can't be made any faster as far as hw programming is concerned. The catch is only one process and one colorbuffer can use the optimizations at a time. There usually is only one MSAA colorbuffer, so it shouldn't be an issue. Also, there is a limit on the size of MSAA colorbuffer resolution in terms of megapixels. If the limit is surpassed, the AA optimizations are disabled. The limit is: - 1 Mpix on low-end and some mid-level chipsets (1024x768 and 1280x720) - 2 Mpix on some mid-level chipsets (1600x1200 and 1920x1080) - 3 or 4 Mpix on high-end chipsets (2048x1536 or 2560x1600, respectively) It corresponds to the number of raster pipes (= GB pipes) available, each pipe can hold 1 Mpix of AA compression data. If it's enabled, the driver prints to stdout: radeon: Acquired access to AA optimizations.
* gallium: remove PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATEMarek Olšák2013-01-1510-14/+0
| | | | Reviewed-by: Brian Paul <[email protected]>
* softpipe: implement separate depth-stencil clearMarek Olšák2013-01-151-3/+12
| | | | | | The CAP is going away. Reviewed-by: Brian Paul <[email protected]>
* gallium/svga: Make sure -std=gnu99 is set.Johannes Obermayr2013-01-141-1/+2
| | | | | | This is a work-around until configure.ac stops touching CFLAGS. Reviewed-by: Matt Turner <[email protected]>
* r300g: set a dummy vertex buffer in context_createMarek Olšák2013-01-141-0/+1
| | | | so that the driver doesn't crash if an app doesn't set any vertex buffers.
* r300g: fix MSAA resolve to an untiled textureMarek Olšák2013-01-143-3/+10
| | | | | RB3D_DEBUG_CTL doesn't help, so I resolve to a tiled temporary texture and then blitting it to the destination one, which we also do in other situations.
* r300g: advertise MSAA support for the RGB10_A2 format on r500Marek Olšák2013-01-142-12/+47
| | | | It seems to be working just fine.
* r300g: allow separate depth and stencil clearMarek Olšák2013-01-141-1/+1
| | | | | | | | The handling of the CAP is broken in st/mesa anyway. Let's just kill it. This commit pretty much enables fast Z clear for FBOs with Z24S8. The driver falls back to clearing with a quad if the fast clear cannot be used. It can still do fast color clear, for example.
* r300g: if both Z and stencil are present, they must be fast-cleared togetherMarek Olšák2013-01-141-6/+11
|
* r300g: allow HiZ with a 16-bit zbufferMarek Olšák2013-01-141-1/+0
|
* r300g: random hyperz cleanupsMarek Olšák2013-01-142-3/+2
|
* Remove hacks for static MakefilesMatt Turner2013-01-1314-57/+0
| | | | | | | | | | | v2: Andreas Boll <[email protected]> - don't remove compatibility with scripts for the old build system v3: Andreas Boll <[email protected]> - remove more obsolete hacks v4: Andreas Boll <[email protected]> - add a previously removed TOP variable to fix vgapi build
* nv50/nvc0: Build codegen in nv50.Johannes Obermayr2013-01-126-36/+45
| | | | This is required to make libnv50 independent of libnvc0.
* r600g: fix warnings for htile vaDave Airlie2013-01-112-2/+2
| | | | | | This fixes a warning about mismatched types. Signed-off-by: Dave Airlie <[email protected]>
* r600g: texture buffer object + glsl 1.40 enable support (v2)Dave Airlie2013-01-1110-19/+373
| | | | | | | | | | | | | | | | | | | This adds TBO support to r600g, and with GLSL 1.40 enabled, we now get 3.1 core profiles advertised for r600g. The r600/700 implementation is a bit different from the evergreen one, as r6/7 hw lacks vertex fetch swizzles. So we implement it by passing 5 constants per sampler to the shader, the shader uses the first 4 as masks for each component and the 5th as the alpha value to OR in. Now TXQ is also broken so we have to pass a constant for the buffer size, on evergreen we just pass this, on r6/7 we pass it as the 6th element in the const info buffer. v1.1: drop return as DDX doesn't use a texture type v2: add r600/700 support. Signed-off-by: Dave Airlie <[email protected]>
* r600g: uniform buffer object supportDave Airlie2013-01-112-9/+49
| | | | | | | | | | This adds 12 more constant buffers for use as UBOs, along with adding relative constant fetching for 2D indices. This with GLSL 1.40 enabled passes all the same tests as softpipe on my evergreen system. Signed-off-by: Dave Airlie <[email protected]>
* r600: always export a position from vertex shaderDave Airlie2013-01-111-0/+17
| | | | | | | This fixes piglit glsl-1.40-tf-no-position from gpu hanging on my rv635 at least. Signed-off-by: Dave Airlie <[email protected]>
* drivers/radeon: Don't link against libgallium.laTom Stellard2013-01-111-2/+1
| | | | | | | | This fixes several duplicate symbol errors. libllvmradeon is a simple helper library. If it requires symbols in other libraries, this should be taken care of by the gallium target that uses it (e.g. libr600.la)
* llvmpipe: fix clearing integer color buffersRoland Scheidegger2013-01-105-31/+87
| | | | | | | | | | | | | We get int/uint clear color value in this case, and util_pack_color can't handle these formats at all (even if it could, float input color isn't what we want). Pass through the color union appropriately and handle the packing ourselves (as I couldn't think of a good generic util solution). This gets piglit fbo_integer_precision_clear and fbo_integer_readpixels_sint_uint from the ext_texture_integer test group from segfault to pass (which only leaves fbo-blending from that group not working). v2: fix up comments
* Clean up .gitignore filesMatt Turner2013-01-1013-14/+0
|
* Remove MESA_PIC_FLAGS macroMatt Turner2013-01-101-2/+1
|
* build: Update drivers/Makefile.am to use LTLIBRARIESMatt Turner2013-01-101-10/+20
|
* radeon/llvm: Convert to AutomakeTom Stellard2013-01-105-36/+51
| | | | | | | | v2: Johannes Obermayr <[email protected]> Fix some undefined symbols. v3: Johannes Obermayr <[email protected]> Build it -shared to fix egl_gallium.so on r600/radeonsi builds.
* radeonsi: Convert to automakeMatt Turner2013-01-103-21/+42
| | | | Can't use LTLIBRARIES here yet, since libradeon isn't converted.
* nvc0: Convert to automakeMatt Turner2013-01-103-12/+37
|
* nv50: Convert to automakeMatt Turner2013-01-103-12/+37
|
* nv30: Convert to automakeMatt Turner2013-01-103-12/+37
|
* nouveau: Convert to automakeMatt Turner2013-01-103-16/+39
|
* svga: Convert to automakeMatt Turner2013-01-103-19/+40
|
* softpipe: Convert to automakeMatt Turner2013-01-103-37/+65
|
* llvmpipe: Convert to automakeMatt Turner2013-01-103-70/+110
|
* rbug: Convert to automakeMatt Turner2013-01-103-12/+44
|