aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium
Commit message (Collapse)AuthorAgeFilesLines
* radeonsi: move framebuffer to new handlingChristian König2012-07-247-448/+666
| | | | Signed-off-by: Christian König <[email protected]>
* radeonsi: move viewport to new handlingChristian König2012-07-246-46/+39
| | | | Signed-off-by: Christian König <[email protected]>
* radeonsi: move scissor state to new state handlingChristian König2012-07-245-53/+26
| | | | Signed-off-by: Christian König <[email protected]>
* radeonsi: move clip state to new handlingChristian König2012-07-245-58/+26
| | | | Signed-off-by: Christian König <[email protected]>
* radeonsi: move blend color to new state handlingChristian König2012-07-245-26/+19
| | | | Signed-off-by: Christian König <[email protected]>
* radeonsi: move blender to new state handlingChristian König2012-07-247-191/+178
| | | | Signed-off-by: Christian König <[email protected]>
* radeonsi: rework state handling v2Christian König2012-07-248-1/+358
| | | | | | | | Add a complete new state handling for SI. v2: fix spelling error Signed-off-by: Christian König <[email protected]>
* gallivm: Prefer the standard JIT engine whenever possible.José Fonseca2012-07-231-4/+4
| | | | | | | | | | | Testing shows that the standard JIT engine retrofited with AVX support is quite stable and as capable to handle AVX instructions as MC-JIT is. And the old JIT is much more memory efficient, as we don't need to allocate one engine instance per shader, as we do for MC-JIT due to its incompleteness. Reviewed-by: Roland Scheidegger <[email protected]>
* r600g: don't emit forbidden reg with old kernel on evergreenJerome Glisse2012-07-231-1/+3
| | | | | | Fix https://bugs.freedesktop.org/show_bug.cgi?id=52313 Signed-off-by: Jerome Glisse <[email protected]>
* r600g: don't emit forbidden register on old kernelJerome Glisse2012-07-232-2/+6
| | | | | | Fix https://bugs.freedesktop.org/show_bug.cgi?id=52313 Signed-off-by: Jerome Glisse <[email protected]>
* radeon/llvm: Fix a bug with IF LOGICALNZ with int operandVincent Lejeune2012-07-233-11/+17
| | | | Signed-off-by: Tom Stellard <[email protected]>
* pipe_loader: Try to connect with the X server before probing pciids v2Tom Stellard2012-07-231-0/+61
| | | | | | | | | | | | | | | | When X is running it is neccesary for pipe_loader to authenticate with DRM, in order to be able to use the device. This makes it possible to run OpenCL programs while X is running. v2: - Fix C++ style comments - Drop Xlib-xcb dependency - Close the X connection when done - Split auth code into separate function Reviewed-by: Michel Dänzer <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
* llvmpipe: use runtime loop instead of static loop for looping over quadsRoland Scheidegger2012-07-203-72/+516
| | | | | | | | | | | | | | | | | | | | | This can potentially cut shader program size by a factor of 4 for 4-wide execution respectively 2 for 8-wide execution and while this ratios aren't quite reached for more complex shaders it can be close. Could not really measure a performance difference so far except for trivial shaders (glxgears). There seems to be a fair amount of unnecessary move's generated especially at the beginning it might be possible to optimize those away somehow. Things aren't quite as clean, some additional stuff needs to be done for keeping both paths working (though llvm might be able to optimize this away). glxgears seems to lose about 5-10% of performance, looking at the generated shaders this is actually less than I'd think it would be - both 4 and 8-wide shaders, despite containing a loop actually have about 10% more instructions in total, and will have roughly 50% more executed instructions (though mostly cheap ones). Need to figure out how to reduce overhead... v2: keep complex interpolation for 4-wide mode, adapt to interface changes. Reviewed-by: José Fonseca <[email protected]>
* nv30: Support negative offsets in indirect constant access.Roy Spliet2012-07-204-8/+15
| | | | | | | | Fixes piglit vp-address-01 amongst several others. Signed-off-by: Roy Spliet <[email protected]> Reviewed-by: Lucas Stach <[email protected]> Tested-by: Lucas Stach <[email protected]>
* nv50/ir: set position before i instead of i->next in NV50LoweringPreSSA::visitBryan Cain2012-07-201-7/+2
| | | | | Fixes rendering glitches in Psychonauts such as Raz's eyes flickering white. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=51962.
* st/xorg: fix masked transformationsLucas Stach2012-07-201-20/+40
| | | | | | | | | | Someone tried to be clever and "optimized" add_vertex_data2() to just use two points for the texture coordinates and then reuse individual components. Sadly this is not how matrix multiplication works. Fixes rendercheck -t tmcoords Signed-off-by: Lucas Stach <[email protected]>
* gallium-egl: Move wayland query_buffer implementationKristian Høgsberg2012-07-197-32/+54
| | | | | | | Move it to native_wayland_drm_bufmgr_helper.c which only gets compiled when wayland is enabled and which already includes the right headers. Signed-off-by: Kristian Høgsberg <[email protected]>
* softpipe: Fix segfault with fbo-cubemap.Olivier Galibert2012-07-191-1/+6
| | | | | | | | | | | | | | | | | | | The cube sampler generates two-dimensional texture coordinates and hence passes NULL for the array for the third one. The actual 2D sampler, lower in the pipe, knew not to used that array since it didn't need it. But the samplers have become single-texel and the coordinate array dereference has been moved up one step, to a level where the code does not know only two coordinates are used. Hence the segfault. The simplest fix by far is to add a third dummy coordinate array in the call to the next pipe step, which will be dereferenced to an harmless 0 which then will be happily ignored by the sampler. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=52250 Signed-off-by: Olivier Galibert <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* wayland: Support EGL_WIDTH and EGL_HEIGHT queries for wl_bufferKristian Høgsberg2012-07-191-3/+10
| | | | | | We're going to make the public wl_buffer struct as small as possible. Signed-off-by: Kristian Høgsberg <[email protected]>
* wayland: Use existing EGL_TEXTURE_FORMAT for querying wl_buffer texture formatKristian Høgsberg2012-07-191-3/+3
| | | | | | | | We also reuse EGL_TEXTURE_RGBA and EGL_TEXTURE_RGB, adding only the new planar YUV texture formats: EGL_TEXTURE_Y_U_V_WL, EGL_TEXTURE_Y_UV_WL and EGL_TEXTURE_Y_XUXV_WL. Signed-off-by: Kristian Høgsberg <[email protected]>
* gallium-egl: Implement eglQueryWaylandBufferWLKristian Høgsberg2012-07-191-1/+31
| | | | | | Support this query for gallium EGL too. Signed-off-by: Kristian Høgsberg <[email protected]>
* r600g: setup streamout before calling last r600_need_cs_space before drawingMarek Olšák2012-07-181-6/+6
| | | | | This fixes CS checker errors due to registers not being initialized, because the flush occured after dirty state was emitted but before drawing.
* st/xorg: attach EDID to outputsLucas Stach2012-07-181-1/+36
| | | | | | | | Allows tools like GNOME's monitor configuration to show meaningful names. v2: fix resource leak Signed-off-by: Lucas Stach <[email protected]>
* st/xorg: remove superfluous memsetLucas Stach2012-07-181-2/+0
| | | | | | exaDriverAlloc() uses calloc, which already initialises pExa to zero. Signed-off-by: Lucas Stach <[email protected]>
* st/xorg: reorder exa context creation and use screen param queriesLucas Stach2012-07-181-7/+8
| | | | | | | | | Gives the x-server a more accurate description of the exa hardware capabilities. v2: drop NPOT check Signed-off-by: Lucas Stach <[email protected]>
* softpipe: Take all lods into account when texture sampling.Olivier Galibert2012-07-182-766/+645
| | | | | | | | | | | | This patch churns a lot because it needs to change 4-wide filters into single pixel filters, since each fragment may use a different filter. The only case not entirely supported is the anisotropic filtering. Not sure what we want to do there, since a full quad is required by that filter. Signed-off-by: Olivier Galibert <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* r600g: implement wait-free buffer transfer for DISCARD_RANGEMarek Olšák2012-07-184-16/+50
| | | | | Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Christian König <[email protected]>
* r600g: accelerate buffer copyingMarek Olšák2012-07-181-23/+47
| | | | | | | This will be useful for efficient handling of the DISCARD transfer flags. Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Christian König <[email protected]>
* r600g: update R600_MAX_DRAW_CS_DWORDS to take draw-opaque into accountMarek Olšák2012-07-182-4/+2
|
* r600g: move VGT_STRMOUT_DRAW_OPAQUE_OFFSET initialization into invariant stateMarek Olšák2012-07-183-1/+3
|
* r600g: only set the index type if drawing is indexedMarek Olšák2012-07-181-4/+5
|
* r600g: remove debug code for streamoutMarek Olšák2012-07-181-11/+0
|
* r600g: inline r600_context_draw_opaque_countMarek Olšák2012-07-183-32/+21
|
* r600g: fix alphatest without a colorbuffer on evergreenMarek Olšák2012-07-181-1/+4
|
* r600g: fix alphatest without a colorbuffer on r6xx-r7xxMarek Olšák2012-07-181-6/+10
|
* r600g: always derive alphatest state from the first colorbufferMarek Olšák2012-07-184-14/+22
|
* r600g: atomize alphatest stateMarek Olšák2012-07-186-46/+52
|
* r600g: try to fix line stippling with lineloopsMarek Olšák2012-07-181-1/+2
| | | | The piglit test is failing, but visually it looks almost correct.
* r600g: optimize uploading depth texturesMarek Olšák2012-07-181-11/+5
| | | | | | | Make it only copy the portion of a depth texture being uploaded and not the whole 2D layer. There is also a little code cleanup.
* r600g: remove needless wrapper r600_texture_depth_flushMarek Olšák2012-07-183-35/+15
|
* r600g: init_flushed_depth_texture should be able to report errorsMarek Olšák2012-07-184-18/+11
|
* gallivm: silence uninitialized variable warningsBrian Paul2012-07-173-3/+6
|
* r600g: fix lockups with and enable dual source blending on evergreenMarek Olšák2012-07-172-4/+4
| | | | GL_ARB_blend_func_extended is now enabled on all chipsets.
* r600g: remove unused code after conversion of sampler viewsMarek Olšák2012-07-177-249/+5
|
* r600g: convert sampler view emission into atomsMarek Olšák2012-07-176-134/+238
| | | | | Vertex and constant buffers are emitted in the same way. This is mainly a simplification of the code. The cleanup is in another patch.
* r600g: only make constant buffers dirty if there's something to updateMarek Olšák2012-07-171-4/+6
|
* r600g: properly track which textures are depthMarek Olšák2012-07-173-19/+26
| | | | This fixes the issue with have_depth_texture never being set to false.
* r600g: consolidate and optimize sampler states changes for evergreenMarek Olšák2012-07-171-14/+22
| | | | Only set sampler states which changed.
* r600g: don't invalidate texture caches when setting sampler statesMarek Olšák2012-07-171-6/+0
| | | | Changing sampler states doesn't change resource bindings.
* r600g: consolidate code for setting sampler views and fix bugs in the processMarek Olšák2012-07-174-90/+62
| | | | | | | | | | | | | | | Issues fixed: - set_vs_sampler_views for evergreen is now properly implemented. - Added the missing inval_texture_cache call for evergreen. - have_depth_texture was sometimes incorrectly set to false on evergreen even if there were depth textures in other shader stages. To fix this, set it to true once and never set it to false again. It's stupid, but it matches the r600 code. The proper fix is left to another patch. - Optimizaton: The sampler views which aren't changed aren't updated.