aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
Commit message (Collapse)AuthorAgeFilesLines
* svga: Fix texture cube param capJakob Bornecrantz2012-01-051-2/+2
| | | | | | | Spotted by Thomas Hellstrom. Reviewed-by: Thomas Hellstrom <[email protected]> Signed-off-by: Jakob Bornecrantz <[email protected]>
* 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]>
* r600g: add missing colorswaps for r8 uint/sint.Dave Airlie2012-01-022-0/+4
| | | | | | fixes some warnings in GL3.0 tests. Signed-off-by: Dave Airlie <[email protected]>
* r300g: inline r300_resource_set_propertiesMarek Olšák2012-01-011-16/+1
|
* r300g: rework resource_copy_region, not changing pipe_resourceMarek Olšák2012-01-019-119/+194
| | | | | | | | | | | | | Changing pipe_resource was wrong, because it can be used by other contexts at the same time. This fixes the last possible race condition in r300g that I know of. This also fixes blitting NPOT compressed textures. Random pixels sometimes appeared at the right-hand edge of the texture. Finally, this removes r300_texture_desc::stride_in_pixels. It makes little sense with sampler views and surfaces being able to override width0, height0, and the format entirely.
* llvmpipe: fix blending for intensity formatsDave Airlie2011-12-311-1/+2
| | | | | | | This fixes the piglit fbo-blending-formats test for standard, ARB_texture_float and EXT_texture_snorm. Signed-off-by: Dave Airlie <[email protected]>
* r600g: Manage fences per screen rather than per context.Michel Dänzer2011-12-302-56/+65
| | | | | | | | | | | | | | | | A fence is a screen object and can outlive the context it was created from. The previous code would access freed memory in that case, resulting in various problems. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=44151 https://bugs.freedesktop.org/show_bug.cgi?id=44007 Probably fixes: https://bugs.freedesktop.org/show_bug.cgi?id=43993 NOTE: This is a candidate for the 7.11 branch. Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Mathias Fröhlich <[email protected]>
* i915g: Allocate tmp for KILPStéphane Marchesin2011-12-301-0/+2
| | | | This fixes https://bugs.freedesktop.org/show_bug.cgi?id=44297
* llvmpipe: Remove useless draw_install_pstipple_stage call.Stéphane Marchesin2011-12-291-5/+0
| | | | | | It is #ifdef'd out, and is already called unconditionnaly a couple lines above. Reviewed-By: Jose Fonseca <[email protected]>
* i915g: Add missing draw_flush call.Stéphane Marchesin2011-12-281-0/+7
| | | | Fixes a bunch of corruption bugs, especially some missing clipped triangles.
* i915g: Only apply the optimization to output vars.Stéphane Marchesin2011-12-271-0/+1
| | | | | This is a bit overkill, but otherwise we need to rename subsequent uses, which is a future TODO. Reported by CME.
* r600g: fix a warning that a variable may be uninitializedMarek Olšák2011-12-251-0/+2
|
* gallium: remove PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_ATTRIBSMarek Olšák2011-12-253-4/+0
| | | | | | It's the same as PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS. Reviewed-by: Brian Paul <[email protected]>
* r300g: mapping buffers for read should be unsynchronizedMarek Olšák2011-12-241-1/+9
| | | | The GPU never uses them for write.
* winsys/radeon: move managing GEM domains back to driversMarek Olšák2011-12-2410-20/+66
| | | | | | | | This partially reverts commit 363ff844753c46ac9c13866627e096b091ea81f8. It caused severe performance drops in Nexuiz. Reported by Phoronix. Tested by me on r300g and by IRC people on r600g.
* nouveau: Fix bugs in nouveau_video_bufferMaarten Lankhorst2011-12-232-4/+3
| | | | | | | Double free and array overflow, even if only 2 members are used the last one needs to be set to NULL explicitly. Signed-off-by: Maarten Lankhorst <[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]>
* i915g: Add unsupported caps.Stéphane Marchesin2011-12-191-0/+4
|
* i915g: Turn an assert into a debug message, print more debug info for ↵Stéphane Marchesin2011-12-192-4/+9
| | | | | | missing depth swz. Also fix indentation a bit.
* i915g: Make the pipe_sampler_state struct non const and get rid of useless ↵Stéphane Marchesin2011-12-192-2/+2
| | | | memcpy.
* i915g: Implement KILP.Stéphane Marchesin2011-12-191-3/+12
|
* i915g: Add two unsupported caps.Stéphane Marchesin2011-12-191-0/+2
|
* i915g: Put the templates at the beggining of the structures.Stéphane Marchesin2011-12-192-5/+5
| | | | | Seriously. This fixes fragment-and-vertex-texturing in piglit and probably a boatload of other stuff.
* 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]>
* nvc0: add NVC0_RESOURCE_FLAG_VIDEOChristoph Bumiller2011-12-182-0/+30
|
* r600g: fix MAX_STREAM_OUTPUT_SEPARATE_ATTRIBS limitMarek Olšák2011-12-171-2/+1
|
* r600g: handle new capsMarek Olšák2011-12-171-0/+2
|
* r300g: handle new capsMarek Olšák2011-12-171-0/+4
|
* r600g: implement transform feedbackMarek Olšák2011-12-1718-13/+873
| | | | | | | | r600: DONE. r700: MOSTLY (done but locks up). Evergreen: MOSTLY (done but doesn't work for an unknown reason). The kernel support will come soon.
* llvmpipe: adapt to struct stream_output_info modificationsChristoph Bumiller2011-12-151-9/+2
| | | | My fault, I broke it with v5 of 861a029ddb31e91bb4d8e18ab708d0d172f63aad.
* nvc0: implement new stream output interfaceChristoph Bumiller2011-12-1515-189/+372
|
* trace: implement stream output interfaceChristoph Bumiller2011-12-151-0/+73
|
* noop: implement stream outputMarek Olšák2011-12-151-0/+35
|
* gallium: interface changes necessary to implement transform feedback (v5)Marek Olšák2011-12-1511-22/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-155-2/+23
| | | | I am going to make interface changes and I don't want to break compilation.
* r300g: take advantage of KEEP_TILING_FLAGS flush flagMarek Olšák2011-12-132-2/+10
| | | | This fixes at least two multi-context-related races.
* nouveau: get rid of winsys objectMarcin Slusarz2011-12-1314-27/+15
| | | | Its only purpose was to destroy itself.
* i915g: Roll back to the previous shader limits.Stéphane Marchesin2011-12-133-6/+2
| | | | Those shader limits seem to be responsible for a piglit hang.
* i915g: Update TODO.Stéphane Marchesin2011-12-131-0/+2
|
* mesa: add const flags to skip MaxVarying and MaxUniform linker checks (v2)Marek Olšák2011-12-131-0/+2
| | | | | | | | | This is only temporary until a better solution is available. v2: print warnings and add gallium CAPs Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* r300g: integer and fixed-point 16.16 textures are not supportedMarek Olšák2011-12-121-0/+11
|
* i915g: fix debug dump on 64 bit systemsMichael Karcher2011-12-111-1/+1
|
* i915g: Fix wrong indices for LINE_LOOP caseFatih Aşıcı2011-12-111-2/+2
|
* llvmpipe: Trim the fragment shader cached based on LLVM IR instruction count.José Fonseca2011-12-084-11/+33
| | | | | | | | | | | | Number of fragment shader variants is not very representative of the memory used by LLVM, neither is number of shader instructions, as often texture sampling constitutes most of the generated code. This change adds an additional trim criteria: least recently used fragment shader variants will be freed until the total number of LLVM IR instruction falls below a specified threshold. Reviewed-by: Brian Paul <[email protected]>
* llvmpipe,draw,gallivm: Ensure we don't walk beyond the end of the shader ↵José Fonseca2011-12-082-3/+11
| | | | | | | | | | | variant list. u_simple_list.h uses a sentinel element, and not a NULL element. So ensure list is not empty when reducing the list of shader variants. Something I noticed while trying to free variants more aggressively. Reviewed-by: Brian Paul <[email protected]>
* nouveau/nvfx: Add more unsupported PIPE_CAP valuesPatrice Mandin2011-12-061-1/+5
| | | | Signed-off-by: Patrice Mandin <[email protected]>
* r600g: check shaders presence in r600_draw_vboVadim Girlin2011-12-061-0/+3
| | | | | | | | | | This patch should prevent the crashes when some shaders are absent, see https://bugs.freedesktop.org/show_bug.cgi?id=43341 Note this is a candidate for the stable branch. Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* r600g: fix error path and use util_slab_freeJerome Glisse2011-12-051-1/+1
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* nv50/nvc0: fix crash when channel allocation failsMarcin Slusarz2011-12-022-2/+4
|