summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/softpipe
Commit message (Collapse)AuthorAgeFilesLines
* softpipe: add dual source blending supportDave Airlie2012-04-132-12/+88
| | | | | | This adds support for a single dual source blending MRT to softpipe. Signed-off-by: Dave Airlie <[email protected]>
* gallium: rename DUAL_SOURCE_BLEND cap to MAX_DUAL_SOURCE_RENDER_TARGETSDave Airlie2012-04-131-0/+2
| | | | | | Though I don't think we'll ever expose > 1. Signed-off-by: Dave Airlie <[email protected]>
* gallium: adapt to get_query_result interface changeMarek Olšák2012-03-301-2/+3
| | | | Reviewed-by: Brian Paul <[email protected]>
* softpipe: set max cube texture size to 4Kx4KBrian Paul2012-03-202-1/+2
| | | | | | | | | | The max size was 16Kx16K so a 4 byte/pixel, six-sided cube would require 6 GBytes of memory. If mipmapped, 8 GB. Reduce the max size to 4K to make the total size more reasonable. Fixes a crash with the new piglit max-texture-size test. Reviewed-by: Yuanhan Liu <[email protected]>
* gallium/drivers: Use automake to generate makefileTom Stellard2012-03-141-0/+3
|
* gallium: remove unused winsys pointers in pipe_screen and pipe_contextMarek Olšák2012-02-212-2/+0
| | | | A winsys is already a private object of a driver.
* gallium: add PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTIONChristoph Bumiller2012-02-091-0/+2
| | | | | | | 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
* vl: add interlacing capabilitiesChristian König2012-02-061-0/+6
| | | | | | | Let the driver control interlaced or progressive format of video buffers. Signed-off-by: Christian König <[email protected]>
* gallium: Prefix #defines in tgsi_exec.h with TGSI_Tom Stellard2012-01-307-277/+277
|
* st/mesa: add PIPE_CAP_GLSL_FEATURE_LEVEL, cleanup st_extensions.cMarek Olšák2012-01-291-0/+2
| | | | | | | | v2: handle the cap in r300 and r600 as well Additional info for r600g: The env var R600_GLSL130=1 enables GLSL 1.3. Along with R600_STREAMOUT=1, it enables full GL 3.
* 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.
* softpipe: move var initialization to silence warningBrian Paul2012-01-241-2/+1
|
* softpipe: Silence unused variable warning on non-LLVM builds.Vinson Lee2012-01-161-0/+2
| | | | | | | | | Fix this GCC warning with non-LLVM builds. sp_screen.c: In function ‘softpipe_get_shader_param’: sp_screen.c:141:28: warning: unused variable ‘sp_screen’ [-Wunused-variable] Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* vl: reintroduce PIPE_VIDEO_CAP_PREFERED_FORMATChristian König2012-01-151-0/+2
| | | | | | | Create the video buffers in the format the driver preffers. This temporary creates problems with decoder less VDPAU video playback. Signed-off-by: Christian König <[email protected]>
* sofpipe: remove extraneous semicolonBrian Paul2012-01-121-1/+1
|
* softpipe: bump max texture array layers to 256.Dave Airlie2012-01-121-1/+1
| | | | | | This as per GL3 specification. Signed-off-by: Dave Airlie <[email protected]>
* softpipe: route correct coordinates for shadow cube sampling.Dave Airlie2012-01-111-1/+2
| | | | | | This fixes the shadow cube map sampling on softpipe. Signed-off-by: Dave Airlie <[email protected]>
* softpipe: enable clamping controlDave Airlie2012-01-112-3/+8
| | | | | | | | This enables fragment clamping in softpipe, it passes more tests than it did previously with no regressions, There are still a couple of failures in the SNORM types to investigate. Signed-off-by: Dave Airlie <[email protected]>
* softpipe: fix texel fetch swizzlesDave Airlie2012-01-111-26/+43
| | | | | | | This fixes a number of texelFetch swizzle tests, and consoldiates the swizzle handling in a new function. Signed-off-by: Dave Airlie <[email protected]>
* softpipe: fix llvm buildDave Airlie2012-01-113-3/+3
| | | | | | Thanks to Wubbbi on #dri-devel for pointing it out. Signed-off-by: Dave Airlie <[email protected]>
* softpipe: allow softpipe to set shader params depending on runtime llvm (v3)Dave Airlie2012-01-113-9/+18
| | | | | | | | | | | | | If draw isn't using llvm we can support vertex texture and integers, These will be fixed up later, but for now allow this check to happen at run-time. v2: since 3e22c7a25321554a32fa6254485912fd53deff3a we can ask draw for a non-llvm context. Just track if ask and set the vars accordingly. This probably isn't perfect but should cover the cases we care about. v3: use debug option, restructure to store in screen, as suggested by Jakob. Signed-off-by: Dave Airlie <[email protected]>
* draw/softpipe: EXT_transform_feedback support (v2)Dave Airlie2012-01-109-160/+80
| | | | | | | | | | | This replaces the current code with an implementation compatible with the new gallium interface. I've left some of the remains of the interface intact so llvmpipe keeps building correctly, and I'll take a look at fixing llvmpipe up later. v2: fixup as per Brian's review Signed-off-by: Dave Airlie <[email protected]>
* gallium: introduce GLSL based interpolation rules. (v2)Dave Airlie2012-01-102-2/+9
| | | | | | | | | | | | This introduces an unspecified interpolation paramter that is only allowed for color semantics, so a specified GLSL interpolation will override the ShadeModel specified interpolation, but not vice-versa. This fixes a lot of the interpolation tests in piglit. v2: rename from unspecified to color Signed-off-by: Dave Airlie <[email protected]>
* softpipe: Don't use llvm in drawJakob Bornecrantz2012-01-091-1/+4
| | | | | | | But add a option to force it on for testing. Signed-off-by: Jakob Bornecrantz <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* vl: replace decode_buffers with auxiliary data fieldChristian König2012-01-091-2/+0
| | | | | | | Based on patches from Maarten Lankhorst <[email protected]> Signed-off-by: Christian König <[email protected]> Acked-by: Maarten Lankhorst <[email protected]>
* gallium: make vbuf_render::set_primitive() return voidBrian Paul2012-01-071-2/+1
| | | | All the implementations of this function always return TRUE.
* softpipe: remove the 32bits limitation on depth(-stencil) formatsMorgan Armand2012-01-035-21/+63
| | | | | | | This patch remove the 32bits limitation. As a side effect, it bring the support for the GL_ARB_depth_buffer_float extension. No regression have been found on piglit, and all tests for GL_ARB_depth_buffer_float pass successfully. Signed-off-by: Dave Airlie <[email protected]>
* softpipe: try and use back color for a slot if color fails.Dave Airlie2011-12-221-0/+5
| | | | | | | | | | | | | | In the case where a front and back output are specified, the draw code will copy the back output into the front color slot and everything is happy. However if no front is specified then the draw code will do a bad copy (separate patch), but also the frag shader won't pick up the color as there there is no write to COLOR from the vertex shader just BCOLOR. This patch fixes that problem so if it can't find a vertex shader output for the front color slot, it will go and lookup and use one for the back color slot. Signed-off-by: Dave Airlie <[email protected]>
* softpipe: fix shadow 2d texture array samplingDave Airlie2011-12-191-5/+12
| | | | | | | | | The 4th texcoord is used in this case for the comparison. This fixes piglit glsl-fs-shadow2DArray* on softpipe. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* softpipe: fix depth sampling for linear vs nearest.Dave Airlie2011-12-191-7/+16
| | | | | | | | | | This sample compare was always doing linear, and this makes the glsl-fs-shadow1DArray test render like the Intel driver. fix wrong 0->j from initial patch Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* gallium: interface changes necessary to implement transform feedback (v5)Marek Olšák2011-12-153-12/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Namely: - EXT_transform_feedback - ARB_transform_feedback2 - ARB_transform_feedback_instanced The old interface was not useful for OpenGL and had to be reworked. This interface was originally designed for OpenGL, but additional changes have been made in order to make st/d3d1x support easier. The most notable change is the stream-out info must be linked with a vertex or geometry shader and cannot be set independently. This is due to limitations of existing hardware (special shader instructions must be used to write into stream-out buffers), and it's also how OpenGL works (stream outputs must be specified prior to linking shaders). Other than that, each stream output buffer has a "view" into it that internally maintains the number of bytes which have been written into it. (one buffer can be bound in several different transform feedback objects in OpenGL, so we must be able to have several views around) The set_stream_output_targets function contains a parameter saying whether new data should be appended or not. Also, the view can optionally be used to provide the vertex count for draw_vbo. Note that the count is supposed to be stored in device memory and the CPU never gets to know its value. OpenGL way | Gallium way ------------------------------------ BeginTF = set_so_targets(append_bitmask = 0) PauseTF = set_so_targets(num_targets = 0) ResumeTF = set_so_targets(append_bitmask = ~0) EndTF = set_so_targets(num_targets = 0) DrawTF = use pipe_draw_info::count_from_stream_output v2: * removed the reset_stream_output_targets function * added a parameter append_bitmask to set_stream_output_targets, each bit specifies whether new data should be appended to each buffer or not. v3: * added PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME for ARB_tfb2, note that the draw-auto subset is always required (for d3d10), only the pause/resume functionality is limited if the CAP is not advertised v4: * update gallium/docs v5: * compactified struct pipe_stream_output_info, updated dump/trace
* gallium: disable stream output in drivers that support itMarek Olšák2011-12-153-2/+9
| | | | I am going to make interface changes and I don't want to break compilation.
* softpipe: s/int/unsigned/ to be consistent in alpha test codeBrian Paul2011-11-231-2/+2
|
* softpipe: remove pointless break stmtBrian Paul2011-11-231-1/+0
|
* gallium: separate out floating-point CAPs into its own enumMarek Olšák2011-11-221-7/+7
| | | | | | | | | | | | | | | The motivation behind this is to add some self-documentation in the code about how each CAP can be used. The idea is: - enum pipe_cap is only valid in get_param - enum pipe_capf is only valid in get_paramf Which CAPs are floating-point have been determined based on how everybody except svga implemented the functions. svga have been modified to match all the other drivers. Besides that, the floating-point CAPs are now prefixed with PIPE_CAPF_.
* gallium: remove PIPE_CAP_GLSL and enable GLSL unconditionallyMarek Olšák2011-11-221-2/+0
| | | | | Only i965g does not enable GLSL, but that driver has been unmaintained and bitrotting for quite a while anyway.
* Remove tgsi_sse2.José Fonseca2011-11-088-266/+1
| | | | tgsi_exec is simple. llvm is fast. tgsi_sse2 ends up being neither.
* softpipe: don't clamp or do logical operations on floating-point buffers.Morgan Armand2011-11-081-22/+54
| | | | Signed-off-by: Brian Paul <[email protected]>
* softpipe: fix memory leaksMorgan Armand2011-11-072-1/+7
| | | | | | This series of patches is a splitted version of my previous one, as suggested by Brian. Signed-off-by: Brian Paul <[email protected]>
* softpipe: implement/fix TIMESTAMP queriesChristoph Bumiller2011-10-201-3/+8
|
* softpipe: remove unused vars in softpipe_clear()Brian Paul2011-10-181-3/+0
|
* softpipe: fix regression with tex tile cache since integer support.Dave Airlie2011-10-121-2/+3
| | | | | | | | Don't use the uint/int paths for ZS formats for tex tile cache. fixes: https://bugs.freedesktop.org/show_bug.cgi?id=41695 Signed-off-by: Dave Airlie <[email protected]>
* softpipe: add integer supportDave Airlie2011-10-115-44/+146
| | | | | | | This adds support to the clear and tile caches for integer storage and clearing, avoiding any floating paths. Signed-off-by: Dave Airlie <[email protected]>
* gallium: rename ZS stencil type to UINT (v2)Dave Airlie2011-10-111-11/+11
| | | | | | | | | | these are never USCALED, always UINT in reality. taken from some work by Christoph Bumiller v2: fixup formatting of table + tabs Signed-off-by: Dave Airlie <[email protected]>
* softpipe: fix Z interpolation invariance bugBrian Paul2011-10-041-1/+10
| | | | | | | | | We want quad/pixel Z values to be interpolated exactly the same for multi-pass algorithms. Because of how the optimized Z-test code is written, we can't cull the first quad in a run even if it's totally killed. See the comment for more info. NOTE: This is a candidate for the 7.11 branch.
* softpipe: add check for DO_PSTIPPLE_IN_HELPER_MODULEBrian Paul2011-10-041-0/+2
| | | | | We only want to generate the fragment shader variant that does stippling if DO_PSTIPPLE_IN_HELPER_MODULE is being used.
* gallium: add PIPE_CAP_CONDITIONAL_RENDERMarek Olšák2011-09-301-0/+2
| | | | | | | We were checking whether render_condition is set. That was not reliable, because it's always set with trace and noop regardless of driver support. Reviewed-by: Brian Paul <[email protected]>
* gallium: add and use PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERSMarek Olšák2011-09-301-10/+11
| | | | | | | | | This removes: - PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS - PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS in favor of the that new per-shader cap. Reviewed-by: Brian Paul <[email protected]>
* gallium: remove PIPE_CAP_TEXTURE_MIRROR_REPEATMarek Olšák2011-09-301-2/+0
| | | | | | | | | | All drivers support it (well, except Cell). The boolean option is going away from core Mesa too. This is a follow-up to Ian Romanick's patch "mesa: Remove ARB_texture_mirrored_repeat extension enable flag". Reviewed-by: Brian Paul <[email protected]>
* gallium: move border color to be a color unionDave Airlie2011-09-271-4/+4
| | | | | | | | | | EXT_texture_integer also specifies border color should be a color union, the values are used according to the texture sampler format. (update docs) Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>