summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/softpipe
Commit message (Collapse)AuthorAgeFilesLines
* 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]>
* softpipe: Use memory allocation macros.José Fonseca2011-09-252-3/+3
| | | | Fixes segfault with memory debugging on.
* gallium: move clear paths from rgba to a pointer to a color union (v2)Dave Airlie2011-09-182-4/+6
| | | | | | | | | | | | | | | This moves the gallium interface for clears from using a pointer to 4 floats to a pointer to a union of float/unsigned/int values. Notes: 1. the value is opaque. 2. only when the value is used should it be interpretered according to the surface format it is going to be used with. 3. float clears on integer buffers and vice-versa are undefined. v2: fixed up vega and graw, dropped hunks that shouldn't have been in patch. Signed-off-by: Dave Airlie <[email protected]>
* softpipe: use pipe_get_tile_rgba_format()Brian Paul2011-09-161-5/+6
| | | | | | | | | | | Pass an explicit surface format as we do with pipe_put_tile_rgba_format(). This fixes the piglit fbo-srgb-blit test. With GL_EXT_framebuffer_sRGB we override the resource's format with an explicit format (linear vs. sRGB). We need to do so both when getting and putting tiles. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=40402 Reviewed-by: Dave Airlie <[email protected]>
* softpipe: use util_format_is_depth_or_stencil()Brian Paul2011-09-161-7/+1
| | | | Reviewed-by: Dave Airlie <[email protected]>
* softpipe: use consistent indentation in sp_quad_blend.cBrian Paul2011-09-151-183/+183
|
* softpipe: fix blending for luminance/intensity surfacesBrian Paul2011-09-151-65/+96
| | | | | | | | | | | | | | If we're drawing to a luminance, luminance/alpha or intensity surface we have to adjust (rebase) the fragment/quad colors before writing them to the tile cache. The tile cache always stores RGBA colors but if we're caching a L/A surface (for example) we need to be sure that R=G=B so that subsequent reads from the surface cache appear to return L/A We previously had a special case for RGB (no alpha) surfaces. This change generalizes that for the other base formats. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=40408, but sRGB formats are still failing. That'll be addressed in a later patch.
* softpipe: implement blend color clampingBrian Paul2011-09-143-29/+117
| | | | | | | | | Per the GL spec, clamp incoming colors prior to blending depending on whether the destination buffer stores normalized (non-float) values. Note that the constant blend color needs to be clamped too (we always get the unclamped color from Mesa). Fixes https://bugs.freedesktop.org/show_bug.cgi?id=40412
* gallium: add PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERSMarek Olšák2011-09-101-2/+2
| | | | v2: remove PIPE_CAP_ARRAY_TEXTURES in favor of the new CAP.
* gallium: add caps for MIN/MAX texel offsets.Dave Airlie2011-09-021-0/+4
| | | | | | | | As per Brian's suggestion, add caps for drivers that support texture offsets to advertise a min/max via TGSI, also use it in the state tracker. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* tgsi: add support for texture offsets to the TGSI IR. (v2)Dave Airlie2011-09-021-5/+12
| | | | | | | | | | | | | This adds tokens for texture offsets, to store 4 * swizzled vec 3 for use in TXF and other opcodes. It also contains TGSI exec changes for softpipe to use this code, along with GLSL->TGSI support for TXF. v2: add some more comments, add back padding I removed. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* g3dvl: Rework the decoder interface part 2/5Christian König2011-08-261-0/+2
| | | | | | | | Implement PIPE_CAP_NUM_BUFFERS_DESIRED giving the decoder control over the number of buffers a state tracker should allocate. Signed-off-by: Christian König <[email protected]> Reviewed-by: Younes Manton <[email protected]>
* softpipe: add const qualifier to silence warningsBrian Paul2011-08-251-1/+1
|
* softpipe: implement TXF support via get_texel callbackDave Airlie2011-08-251-0/+69
| | | | | | | | | | | This just calls the texel fetch functions directly bypassing the sampling, notes: 1: loops inside switch should be more optimal. 2: borders can be sampled though only up to border depth, outside that its undefined. Signed-off-by: Dave Airlie <[email protected]>
* softpipe: add get_dims callback for TXQ support. (v2)Dave Airlie2011-08-251-0/+40
| | | | | | | | | | | This adds the get_dims callback that is called from the tgsi exec_txq. It returns values as per EXT_gpu_program4. v2: fix one indent + use a switch (slighty modified from Brian) Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* android: build softpipeChia-I Wu2011-08-211-0/+67
| | | | This builds the static library libmesa_pipe_softpipe from softpipe.
* softpipe: fix an obvious copy-paste error in get_query_resultMarek Olšák2011-08-161-1/+1
| | | | Reviewed-by: Brian Paul <[email protected]>
* softpipe: When doing write_all_cbufs, don't stomp over the color.Eric Anholt2011-07-281-4/+12
| | | | | | | We have to make it through this loop processing the color multiple times, so we can't go overwriting it on our first color buffer. Reviewed-by: Brian Paul <[email protected]>
* gallium/softpipe: Don't clobber dest color/alpha before masking.Younes Manton2011-07-231-89/+96
| | | | | | | | | The blend_quad function clobbers the actual render target color/alpha values while applying the destination blend factor, which results in restoring the wrong value during the masking stage for write-disabled channels. Reviewed-by: Brian Paul <[email protected]>
* Merge branch 'gallium-polygon-stipple'Brian Paul2011-07-2116-148/+383
|\
| * softpipe: use the polygon stipple utility moduleBrian Paul2011-07-219-14/+131
| | | | | | | | | | | | | | | | | | | | This is an alternative to the draw module's polygon stipple stage. The softpipe implementation here is just a test. The advantange of using the new polygon stipple utility module (with other drivers) is we can avoid software vertex processing in the draw module and get much better performance. Polygon stipple doesn't require special vertex processing like the other draw module stage.
| * softpipe: implement fragment shader variantsBrian Paul2011-07-2113-117/+251
| | | | | | | | We'll need shader variants to accomodate the new polygon stipple utility.
| * softpipe: use tgsi_shader_info fields for fragcoord origin, center, etc.Brian Paul2011-07-214-17/+5
| |
| * softpipe: remove obsolete commentBrian Paul2011-07-211-4/+0
| |
| * softpipe: rename a functionBrian Paul2011-07-211-7/+7
| |
* | softpipe: fix various warnings about int/float/double conversions, etcBrian Paul2011-07-131-15/+15
| |
* | softpipe: Remove sp_video_context.c from SConscript.Vinson Lee2011-07-131-1/+0
| | | | | | | | | | | | sp_video_context.c was added to SConscript in commit ed24e19070b7dff12670151b2d184f31c845ccae (pipe-video merge) but no file of that name was added.
* | [g3dvl] add some more PIPE_VIDEO_CAPsChristian König2011-07-121-0/+6
| |
* | Merge remote-tracking branch 'origin/master' into pipe-videoChristian König2011-07-111-5/+6
|\ \ | | | | | | | | | | | | | | | Conflicts: src/gallium/drivers/r600/r600_pipe.c src/gallium/drivers/r600/r600_state_inlines.h
| * | softpipe: add missing stencil format case in convert_quad_stencil()Brian Paul2011-07-061-0/+1
| | | | | | | | | | | | | | | | | | Part of the fix for https://bugs.freedesktop.org/show_bug.cgi?id=38729 NOTE: This is a candidate for the 7.11 branch
| * | softpipe: minor clean-ups in sp_quad_depth_test.cBrian Paul2011-07-061-5/+5
| |/
* | [g3dvl] and finally remove pipe_video_contextChristian König2011-07-082-10/+2
| |
* | [g3dvl] move video buffer creation out of video contextChristian König2011-07-081-0/+3
| |
* | [g3dvl] remove the unused priv member from pipe_video_contextChristian König2011-07-081-1/+1
| |
* | [g3dvl] make pipe_context mandatory for creation pipe_video_contextChristian König2011-07-081-9/+2
| |
* | [g3dvl] rename is_format_supported to is_video_format_supported and move it ↵Christian König2011-07-081-0/+2
| | | | | | | | into screen object
* | [g3dvl] rename get_param to get_video_param and move into screen objectChristian König2011-07-071-1/+14
| |
* | Merge remote-tracking branch 'origin/master' into pipe-videoChristian König2011-06-092-6/+336
|\| | | | | | | | | | | Conflicts: src/gallium/tests/unit/u_format_test.c src/gallium/winsys/r600/drm/r600_hw_context.c
| * softpipe: Anisotropic filtering extension.Andreas Faenger2011-06-062-6/+336
| | | | | | | | | | | | | | Reference implementation which produces high quality renderings. Based on Higher Quality Elliptical Weighted Avarage Filter (EWA). Signed-off-by: Brian Paul <[email protected]>
* | Merge remote-tracking branch 'origin/master' into pipe-videoChristian König2011-06-052-6/+5
|\|
| * softpipe: add a better fake implementation of fencesMarek Olšák2011-06-022-6/+5
| | | | | | | | | | | | | | | | | | | | The flush function, when asked for, should not return a NULL fence. NULL can only be returned if fences are not implemented, and st/mesa doesn't call any of the fence functions if it receives a NULL fence (because some drivers don't even set the fence hooks). ARB_sync is exposed if fence_finish is set.
* | Merge remote-tracking branch 'origin/master' into pipe-videoChristian König2011-05-151-2/+2
|\|
| * Remove redundant util_unsigned_logbase2Matt Turner2011-05-121-2/+2
| | | | | | | | | | | | | | util_logbase2 is exactly the same function. Signed-off-by: Matt Turner <[email protected]> Signed-off-by: Brian Paul <[email protected]>
* | Merge remote branch 'origin/master' into pipe-videoChristian König2011-04-231-16/+16
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configs/linux-dri src/gallium/drivers/r600/r600_pipe.c src/gallium/drivers/r600/r600_state.c src/gallium/include/pipe/p_format.h src/gallium/tests/graw/fragment-shader/frag-abs.sh src/gallium/tests/graw/fragment-shader/frag-add.sh src/gallium/tests/graw/fragment-shader/frag-cb-1d.sh src/gallium/tests/graw/fragment-shader/frag-cb-2d.sh src/gallium/tests/graw/fragment-shader/frag-dp3.sh src/gallium/tests/graw/fragment-shader/frag-dp4.sh src/gallium/tests/graw/fragment-shader/frag-dst.sh src/gallium/tests/graw/fragment-shader/frag-ex2.sh src/gallium/tests/graw/fragment-shader/frag-face.sh src/gallium/tests/graw/fragment-shader/frag-flr.sh src/gallium/tests/graw/fragment-shader/frag-frc.sh src/gallium/tests/graw/fragment-shader/frag-kil.sh src/gallium/tests/graw/fragment-shader/frag-lg2.sh src/gallium/tests/graw/fragment-shader/frag-lit.sh src/gallium/tests/graw/fragment-shader/frag-lrp.sh src/gallium/tests/graw/fragment-shader/frag-mad-immx.sh src/gallium/tests/graw/fragment-shader/frag-mad.sh src/gallium/tests/graw/fragment-shader/frag-max.sh src/gallium/tests/graw/fragment-shader/frag-min.sh src/gallium/tests/graw/fragment-shader/frag-mov.sh src/gallium/tests/graw/fragment-shader/frag-mul.sh src/gallium/tests/graw/fragment-shader/frag-rcp.sh src/gallium/tests/graw/fragment-shader/frag-rsq.sh src/gallium/tests/graw/fragment-shader/frag-sge.sh src/gallium/tests/graw/fragment-shader/frag-slt.sh src/gallium/tests/graw/fragment-shader/frag-srcmod-abs.sh src/gallium/tests/graw/fragment-shader/frag-srcmod-absneg.sh src/gallium/tests/graw/fragment-shader/frag-srcmod-neg.sh src/gallium/tests/graw/fragment-shader/frag-srcmod-swz.sh src/gallium/tests/graw/fragment-shader/frag-sub.sh src/gallium/tests/graw/fragment-shader/frag-tempx.sh src/gallium/tests/graw/fragment-shader/frag-xpd.sh src/gallium/tests/graw/vertex-shader/vert-abs.sh src/gallium/tests/graw/vertex-shader/vert-add.sh src/gallium/tests/graw/vertex-shader/vert-arl.sh src/gallium/tests/graw/vertex-shader/vert-arr.sh src/gallium/tests/graw/vertex-shader/vert-cb-1d.sh src/gallium/tests/graw/vertex-shader/vert-cb-2d.sh src/gallium/tests/graw/vertex-shader/vert-dp3.sh src/gallium/tests/graw/vertex-shader/vert-dp4.sh src/gallium/tests/graw/vertex-shader/vert-dst.sh src/gallium/tests/graw/vertex-shader/vert-ex2.sh src/gallium/tests/graw/vertex-shader/vert-flr.sh src/gallium/tests/graw/vertex-shader/vert-frc.sh src/gallium/tests/graw/vertex-shader/vert-lg2.sh src/gallium/tests/graw/vertex-shader/vert-lit.sh src/gallium/tests/graw/vertex-shader/vert-lrp.sh src/gallium/tests/graw/vertex-shader/vert-mad.sh src/gallium/tests/graw/vertex-shader/vert-max.sh src/gallium/tests/graw/vertex-shader/vert-min.sh src/gallium/tests/graw/vertex-shader/vert-mov.sh src/gallium/tests/graw/vertex-shader/vert-mul.sh src/gallium/tests/graw/vertex-shader/vert-rcp.sh src/gallium/tests/graw/vertex-shader/vert-rsq.sh src/gallium/tests/graw/vertex-shader/vert-sge.sh src/gallium/tests/graw/vertex-shader/vert-slt.sh src/gallium/tests/graw/vertex-shader/vert-srcmod-abs.sh src/gallium/tests/graw/vertex-shader/vert-srcmod-absneg.sh src/gallium/tests/graw/vertex-shader/vert-srcmod-neg.sh src/gallium/tests/graw/vertex-shader/vert-srcmod-swz.sh src/gallium/tests/graw/vertex-shader/vert-sub.sh src/gallium/tests/graw/vertex-shader/vert-xpd.sh src/gallium/tools/trace/dump.py src/gallium/tools/trace/format.py src/gallium/tools/trace/model.py src/gallium/tools/trace/parse.py
| * softpipe: Take the sampler view's first_level into account when sampling.Henri Verbeet2011-04-081-16/+16
| | | | | | | | Signed-off-by: Brian Paul <[email protected]>
* | [g3dvl] and finally split the decoder part out of the contextChristian König2011-04-061-14/+3
| | | | | | | | This should give a good basis to implement vdpau ontop of it.
* | [g3dvl] remove PIPE_CAP_DECODE_TARGET_PREFERRED_FORMATChristian König2011-04-021-2/+1
| | | | | | | | It wasn't fully implemented anyway.