summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Revert "glsl: Fix constant-folding for reciprocal expressions"Chad Versace2011-02-151-10/+6
| | | | | | | | | | | | This reverts commit b3cf92aa916ee0537ee37723c23a9897ac9cd3e0. The reverted commit prevented constant-folding of reciprocal expressions when the reciprocated expression was 0. However, since the spec allows division by zero, constant-folding *is* permissible in this case. From Section 5.9 of the GLSL 1.20 spec: Dividing by zero does not cause an exception but does result in an unspecified value.
* tnl: Add support for datatype GL_FIXED in vertex arraysChad Versace2011-02-151-0/+40
| | | | | | | | | Before populating the vertex buffer attribute pointer (VB->AttribPtr[]), convert vertex data in GL_FIXED format to GL_FLOAT. Fixes bug: http://bugs.freedesktop.org/show_bug.cgi?id=34047 NOTE: This is a candidate for the 7.9 and 7.10 branches.
* r600g: add srgb compressed formats to the list.Dave Airlie2011-02-161-0/+4
|
* gallium: add usage parameter to pipe_buffer_createMarek Olšák2011-02-1519-11/+55
| | | | | And set a reasonable buffer usage flag everywhere instead of just PIPE_USAGE_DEFAULT.
* r600g: Fix RGB10_A2 format handlingFabian Bieler2011-02-152-6/+10
|
* r600g: fix regression in r6/7xx since mipmap reworkDave Airlie2011-02-151-1/+1
| | | | I typod this when copy-pasting.
* nvc0: Fix uninitialized variable warning.Vinson Lee2011-02-151-1/+1
| | | | | | Fixes this GCC warning. nvc0_tgsi_to_nc.c: In function 'bld_tex': nvc0_tgsi_to_nc.c:1392: warning: 'dim' may be used uninitialized in this function
* r300g: offload the CS ioctl to another threadMarek Olšák2011-02-156-113/+233
| | | | | | | | | | This is a multi-threading optimization which hides the kernel overhead behind a thread. It improves performance in CPU-limited apps by 2-15%. Of course you must have at least 2 cores for it to make any difference. It can be disabled with: export RADEON_THREAD=0
* r600g: add support for s3tc formats.Dave Airlie2011-02-153-0/+75
| | | | | | | | | | | | On r600, s3tc formats require a 1D tiled texture format, so we have to do uploads using a blit, via the 64-bit and 128-bit formats Based on the r600c code we use a 64 and 128-bit type to do the blits. Still requires R600_ENABLE_S3TC until the kernel fixes are in, this has only been tested on evergreen where the kernel doesn't yet get in the way.
* r600g: fix miptree calculationsDave Airlie2011-02-154-47/+41
| | | | | | | | | | the miptree setup and pitch storing didn't work so well for block based things like compressed textures. The CB takes blocks, where the texture sampler takes pixels, and transfers need bytes, So now we store blocks/bytes and translate to pixels in the sampler. This is necessary for s3tc to work properly.
* r600g: drop tiled flagDave Airlie2011-02-154-13/+8
| | | | | | | we can work this out from the array_mode and it makes more sense to do that. Signed-off-by: Dave Airlie <[email protected]>
* st/mesa: fix compressed mipmap generation.Dave Airlie2011-02-151-6/+4
| | | | | | | | | If the underlying transfer had a stride wider for hw alignment reasons, the mipmap generation would generate badly strided images. this fixes a few problems I found while testing r600g with s3tc Signed-off-by: Dave Airlie <[email protected]>
* st/mesa: fix GLES buildMarek Olšák2011-02-151-1/+1
| | | | | | Broken since d5062fb3a315c46d77d5c954a3e3c14be1907d33. I wonder why this code is hidden behind #if by default.
* r300g: actually implement the is_buffer_busy hook the right wayMarek Olšák2011-02-151-3/+3
| | | | Ooops.
* r300g: handle interaction between UNSYNCHRONIZED and DONTBLOCK flags in bo_mapMarek Olšák2011-02-151-20/+16
| | | | | The VBO module uses both, but they are somewhat opposite to each other. In this case, we pick UNSYNCHRONIZED and ignore DONTBLOCK.
* r300g: fix a possible race condition when mapping a bufferMarek Olšák2011-02-152-23/+34
| | | | This is the last one I think.
* r300g: implement fences using dummy relocationsMarek Olšák2011-02-154-65/+32
| | | | So finally we have them.
* r300g: fix SIGFPE on debug buildsMarek Olšák2011-02-151-2/+2
|
* r300g: inline some of the pipe_buffer_map/unmap callsMarek Olšák2011-02-151-18/+14
|
* r300g: do not track whether occlusion queries have been flushedMarek Olšák2011-02-144-18/+5
| | | | The winsys takes care of flushing automatically.
* r300g: flush CS in bo_map even if we get USAGE_DONTBLOCKMarek Olšák2011-02-141-0/+1
| | | | | | | | | | Because an app may do something like this: while (!(ptr = bo_map(..., DONT_BLOCK))) { /* Do some other work. */ } And it would be looping endlessly if we didn't flush.
* st/python: remove pipe_vertex_buffer::max_indexVinson Lee2011-02-141-3/+0
| | | | This is a follow-up to commit cdca3c58aa2d9549f5188910e2a77b438516714f.
* graw: remove pipe_vertex_buffer::max_indexVinson Lee2011-02-141-1/+0
| | | | This is a follow-up to commit cdca3c58aa2d9549f5188910e2a77b438516714f.
* st/mesa: Use blend equation and function of first render target for all ↵Fabian Bieler2011-02-141-8/+11
| | | | | | | | | | | render targets if ARB_draw_buffers_blend is not supported If EXT_draw_buffers2 is supported but ARB_draw_buffers_blend isn't _mesa_BlendFuncSeparateEXT only sets up the blend equation and function for the first render target. This patch makes sure that update_blend doesn't try to use the data from other rendertargets in such cases. Signed-off-by: Brian Paul <[email protected]>
* r300g: implement pb_manager::is_buffer_busyMarek Olšák2011-02-141-22/+27
|
* pb_bufmgr_cache: add is_buffer_busy hook and use it instead of non-blocking mapMarek Olšák2011-02-142-7/+14
| | | | This is cleaner and implementing the hook is optional.
* gallium: notify drivers about possible changes in user buffer contentsMarek Olšák2011-02-1426-6/+182
| | | | Also implement the redefine_user_buffer hook in the drivers.
* st/mesa: set vertex arrays state only when necessaryMarek Olšák2011-02-141-182/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | The vertex arrays state should be set only when (_NEW_ARRAY | _NEW_PROGRAM) is dirty. This assumes user buffer content is mutable, which will be sorted out in the next commit. The following usage case should be much faster now: for (i = 0; i < 1000; i++) { glDrawElements(...); } Or even: for (i = 0; i < 1000; i++) { glSomeStateChangeOtherThanArraysOrProgram(...); glDrawElements(...); } The performance increase from this may be significant in some apps and negligible in others. It is especially noticable in the Torcs game (r300g): Before: 15.4 fps After: 20 fps Also less looping over attribs in st_draw_vbo yields slight speed-up in apps with lots of glDraw* calls.
* gallium: remove pipe_vertex_buffer::max_indexMarek Olšák2011-02-1426-50/+12
| | | | | This is redundant to pipe_draw_info::max_index and doesn't really fit in the optimizations I plan.
* gallium: always save and restore vertex buffers using cso_cacheMarek Olšák2011-02-1414-18/+92
|
* vbo: bind arrays only when necessaryMarek Olšák2011-02-143-0/+8
| | | | | We don't need to call bind_arrays in the vbo module if the states which the function depends on are not dirty.
* vbo: notify a driver that we change buffer offsets, strides, etc.Marek Olšák2011-02-142-0/+2
|
* r300g: Remove redundant initialization.Vinson Lee2011-02-141-1/+1
| | | | | Remove redundant initialization from commit 3b01b52bd78e3d2fc857feacebd815a5fae00c94 noticed by tstellar.
* r600g: add alignment cases for linear alignedAlex Deucher2011-02-141-0/+6
| | | | | | Matches the drm and ddx. Signed-off-by: Alex Deucher <[email protected]>
* draw: Don't define the last two mipmap levels in aa lines.José Fonseca2011-02-141-5/+11
| | | | | | Some hardware needs to make a seperate copy of all levels to obey max_lod, so simply do not define the last two levels instead of clamping.
* svga: Set the appropriate flags when creating sampler/surface views.José Fonseca2011-02-143-5/+18
|
* r300g: put indices in CS if there's just a few of them and are in user memoryMarek Olšák2011-02-141-3/+99
|
* r300g: cleanup the draw functionsMarek Olšák2011-02-142-76/+53
|
* r300g: do not create a user buffer struct for misaligned ushort indices fallbackMarek Olšák2011-02-143-12/+8
|
* r300g: fix fallback for misaligned ushort indices with num vertices >= 65535Marek Olšák2011-02-141-1/+5
|
* r300g: consolidate emission of common draw regsMarek Olšák2011-02-141-21/+23
|
* r300g: Move declaration before code.Vinson Lee2011-02-141-3/+4
| | | | Fixes SCons build.
* r600g: do not destroy the original index buffer when translating indicesMarek Olšák2011-02-141-2/+2
| | | | Because we only translate a subrange of the buffer.
* r300g: emit 3D_LOAD_VBPNTR only when necessaryMarek Olšák2011-02-144-64/+33
| | | | | I thought I couldn't skip emitting this packet in some cases. Well it looks like I can.
* r300g: fix reference counting when translating indicesMarek Olšák2011-02-141-0/+3
|
* u_index_modify: map buffers with PIPE_TRANSFER_UNSYNCHRONIZEDMarek Olšák2011-02-141-3/+12
|
* r300g: remove the relocation after AARESOLVE_PITCHMarek Olšák2011-02-142-3/+1
|
* egl_dri2: add nouveau support.Dave Airlie2011-02-141-0/+8
| | | | | | | but really wtf? all these PCI IDs need to be ripped out of here, its totally unscalable and the drivers already have this info so could export it some better way. tested by Darxus on #wayland.
* nv50: fix query assertionMarcin Slusarz2011-02-131-1/+1
|
* r300g: correctly determine if a texture is blittable in texture_get_transferMarek Olšák2011-02-131-4/+5
|