summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_setup.c
AgeCommit message (Collapse)Author
2010-09-20llvmpipe: rename sprite field, add sprite_coord_originBrian Paul
2010-09-16llvmpipe: add LP_PERF flag to disable various aspects of rasterizationKeith Whitwell
Allows disabling various operations (mainly texture-related, but will grow) to try & identify bottlenecks. Unlike LP_DEBUG, this is active even in release builds - which is necessary for performance investigation.
2010-09-11llvmpipe: move some debug to DEBUG_SCENEKeith Whitwell
2010-09-07llvmpipe: rasterization debugging helpersKeith Whitwell
2010-09-07llvmpipe: use opcodes instead of function pointers in binsKeith Whitwell
Also, move some state from rasterizer struct to the scene.
2010-09-07llvmpipe: rearrange queriesKeith Whitwell
2010-09-07llvmpipe: enforce fixed memory limit on scenesKeith Whitwell
2010-09-07llvmpipe: clean up deferred zstencil clearsKeith Whitwell
2010-09-07llvmpipe: rework fences and queriesKeith Whitwell
2010-08-27llvmpipe: point sprites rasterizationHui Qi Tay
Point sprites now done in the rasterizer setup code instead of going through the draw module.
2010-08-27llvmpipe: native point rasterizationHui Qi Tay
Conflicts: src/gallium/drivers/llvmpipe/lp_setup_context.h src/gallium/drivers/llvmpipe/lp_setup_line.c src/gallium/drivers/llvmpipe/lp_setup_tri.c
2010-08-27llvmpipe: native rasterization for linesHui Qi Tay
Rasterize lines directly by treating them as 4-sided polygons. Still need to check the exact pixel rasteration.
2010-08-25llvmpipe: fix bad patch applicationKeith Whitwell
2010-08-25llvmpipe: track drawing region as a single u_rectKeith Whitwell
2010-08-25llvmpipe: move some fence functions into lp_screen.cKeith Whitwell
2010-08-25llvmpipe: fence debugging, add llvmpipe_finishKeith Whitwell
2010-07-16llvmpipe: use single swizzled tileKeith Whitwell
Use a single swizzled tile per colorbuf (and per thread) to avoid accumulating large amounts of cached swizzled data. Now that the SSE3 code has been merged to master, the performance delta of this change is minimal, the main benefit is reduced memory usage due to no longer keeping swizzled copies of render targets. It's clear from the performance of the in-place version of this code that there is still quite a bit of time being spent swizzling & unswizzling, but it's not clear exactly how to reduce that.
2010-07-13llvmpipe: move rasterizer to screen instead of setup contextRoland Scheidegger
there's no point of having this per context, so move to screen (and protect with a mutex).
2010-07-13llvmpipe: eliminate the set_state rasterizer commandKeith Whitwell
Just put a pointer to the state in the tri->inputs struct. Remove some complex logic for eliminating unused statechanges in bins at the expense of a slightly larger triangle struct.
2010-07-13llvmpipe: pass mask into fragment shaderKeith Whitwell
Move this code back out to C for now, will generate separately. Shader now takes a mask parameter instead of C0/C1/C2/etc. Shader does not currently use that parameter and rasterizes whole pixel stamps always.
2010-07-13llvmpipe: move fences from per-bin to per-threadKeith Whitwell
Rather than inserting an lp_rast_fence command at the end of each bin, have each rasterizer thread call this function directly once it has run out of work to do on a particular scene. This results in fewer calls to the mutex & related functions, but more importantly makes it easier to recognize empty bins.
2010-07-06llvmpipe: disconnect vertex texture sampling from the setupZack Rusin
it was wrong to put this in the fs paths, but it was easier to just stuff it along the fragment texture sampling paths. the patch disconnects vertex texture sampling and just maps the textures before the draw itself and unmaps them after.
2010-07-06draw: implement vertex texture sampling using llvmZack Rusin
2010-06-30llvmpipe: use dummy tile when out of memoryBrian Paul
2010-06-30llvmpipe: Add a new scene state to describe scenes which only have state ↵José Fonseca
changes. It's a rare condition, but it may happen if all primitives are clipped/culled. For now we just do a no-op rasterization, but we could bypass it.
2010-06-28llvmpipe: Ensure outdated framebuffer state is not reused in ↵José Fonseca
lp_setup_bind_framebuffer(). We were starting a scene whenever lp_setup_get_vertex_info() was called by the draw module. So when when all primitives were culled/clipped, not only did we create a new scene for nothing, but we end up using the old scene with the old framebuffer state instead of a new one. Fix consists in: - don't call lp_setup_update_state() in lp_setup_get_vertex_info() -- no longer necessary - always setting the scene state before binning a command -- query commands were bypassing it - assert no old scene is reused in lp_setup_bind_framebuffer()
2010-06-09llvmpipe: fix copy & paste bug in clear logicRoland Scheidegger
fixes bug 28450.
2010-06-03llvmpipe: Fix uninitialized variable on non-debug builds.Vinson Lee
2010-06-03Merge branch 'gallium-newclear'Roland Scheidegger
Conflicts: src/gallium/state_trackers/python/p_context.i
2010-05-30llvmpipe: Pass the fs variant to the rasterizer.José Fonseca
2010-05-29llvmpipe: adapt to clear interface changesRoland Scheidegger
with some newfangled code, should support separate depth/stencil clears. Needs some testing.
2010-05-13llvmpipe: silence casting warningsBrian Paul
2010-05-08llvmpipe: Remove unnecessary header.Vinson Lee
2010-05-06llvmpipe: implement occlusion queryQicheng Christopher Li
OpenGL occlusion queries work now. The Mesa demos, glean test and piglit tests all pass. A few enhancements are possible in the future. -Brian Signed-off-by: Brian Paul <brianp@vmware.com>
2010-05-04llvmpipe: Remove unnecessary headers.Vinson Lee
2010-05-04llvmpipe: do some null pointer checkingBrian Paul
2010-05-03gallium: move framebuffer utility functions into a new fileBrian Paul
2010-04-28llvmpipe: fix scene queue memory leakBrian Paul
2010-04-28llvmpipe: fix surface memory leak during tear-downBrian Paul
2010-04-28llvmpipe: remove unused write_depthBrian Paul
2010-04-27llvmpipe: implement max scene sizeBrian Paul
When the size of the scene (binned data plus referenced resources/textures) exceeds LP_MAX_SCENE_SIZE flush/render the scene. This could be improved in various ways but is a good start. Fixes piglit streaming-texture-leak test.
2010-04-24llvmpipe: Initialize dummy variable.José Fonseca
2010-04-24llvmpipe: Don't use fences when not using threads.José Fonseca
lp_setup_flush has effect immediately.
2010-04-24llvmpipe: Move the determination of the number of threads to the screen.José Fonseca
2010-04-23llvmpipe: rename texture refs to resource refsBrian Paul
2010-04-19llvmpipe: remove dead codeBrian Paul
2010-04-19llvmpipe: get 3D texture image stride from an array rather than computing itBrian Paul
This fixes broken 3D texture indexing when the height of the 3D texture was less than 64 (the tile size). It's simpler to pass this as an array (as we do with the row stride) than to compute it on the fly.
2010-04-19llvmpipe: fix rendering to 3D texturesBrian Paul
Treat cube faces and 3D texture slices in the same manner (they're layed out out continuously in memory). Additional clean-ups and improvements coming.
2010-04-16llvmpipe: check for dirty context state in lp_setup_update_state()Brian Paul
This fixes problems with the draw module's aaline, aapoint and pstipple stages where we change some driver state after the call to the draw module's draw_arrays() function.
2010-04-16Merge the lp-surface-tiling branch into master.Brian Paul
This branch implemented dual representations of texture/drawing surfaces: one in the conventional linear layout and the other the tiled layout which is used by the fragment shader pipe. Per-tile flags indicate the layout of each image tile. In many situations this lets us avoid converting image data between the two layouts. Squashed commit of the following: commit 563a7e3cc552fdcfcaf9ac0d4b1683c3ba2ae732 Author: Brian Paul <brianp@vmware.com> Date: Thu Apr 8 14:48:21 2010 -0600 llvmpipe: convert points/lines to triangles with draw module This isn't the most efficient way to render points/lines but it allows us to run more tests. commit a8aa763e8a717533f2b13bb6ea53cbccbede68c9 Author: Brian Paul <brianp@vmware.com> Date: Thu Apr 8 14:47:28 2010 -0600 llvmpipe: call llvmpipe_get_texture_tile() for depth/stencil The returned pointer isn't used, but the tile status/layout info gets updated. Helps to fix glReadPixels(DEPTH / STENCIL). commit 463bc64af266194acbea71cd52e26a79b8c8a260 Author: Brian Paul <brianp@vmware.com> Date: Thu Apr 8 10:58:48 2010 -0600 llvmpipe: add store_color to debug cmd_names list commit 784cc73fb334a9d7b7c93cbd8a1445cdf742ff58 Author: Brian Paul <brianp@vmware.com> Date: Thu Apr 8 10:57:43 2010 -0600 llvmpipe: fix debug build commit 792c93171ec075664f55720ffed397ac2834a4fc Author: Brian Paul <brianp@vmware.com> Date: Thu Apr 8 10:49:01 2010 -0600 llvmpipe: fix cube mapping commit 882b1035db88c3dd8aebe28dc971ac30a9ee39e3 Author: Brian Paul <brianp@vmware.com> Date: Thu Apr 8 09:53:30 2010 -0600 llvmpipe: remove some older/unused code commit b807d32b23145301e8842824664d9f06b9c5502e Author: Brian Paul <brianp@vmware.com> Date: Thu Apr 8 09:29:50 2010 -0600 llvmpipe: silence warning commit 7b337e64fec92836ccdf9d96216289dd58418e35 Author: Brian Paul <brianp@vmware.com> Date: Wed Apr 7 17:06:08 2010 -0600 llvmpipe: clean-up, comments in lp_surface_copy() commit c52fa36f249cc652fa8d5fdd94d6574127c08c41 Author: Brian Paul <brianp@vmware.com> Date: Wed Apr 7 16:51:42 2010 -0600 llvmpipe: overhaul tiled/linear memory management Now we keep per-tile layout info (linear vs. tiled (or neither or both) and convert from one layout to the other on demand. commit 4a50ccfd470547c9be0704005818a87014e9c0e9 Author: Brian Paul <brianp@vmware.com> Date: Wed Apr 7 16:51:27 2010 -0600 llvmpipe: added tile read/write counters commit b7d0ea9c687ac8773b083791623826fa604adf21 Author: Brian Paul <brianp@vmware.com> Date: Mon Apr 5 14:54:04 2010 -0600 llvmpipe: rename some functions commit ee45c6e5b95cbd3c8cccc9aa4d45d8aef11e20c4 Author: Brian Paul <brianp@vmware.com> Date: Mon Apr 5 14:42:15 2010 -0600 llvmpipe: re-org some get block/tile pointer code commit 26ce97c16c0b6520ff1538803baa772d8c3b1280 Author: Brian Paul <brianp@vmware.com> Date: Mon Apr 5 14:34:13 2010 -0600 llvmpipe: disable bad assertions commit 5c670481248c4d46f87f13bf3af5655925e7002d Author: Brian Paul <brianp@vmware.com> Date: Fri Apr 2 16:36:11 2010 -0600 llvmpipe: add a special-case optimization to lp_surface_copy() Be more efficient when copying tiled image to linear image. Before, the fallback path was always converting the whole source image to linear. Now we can convert just a sub region. commit faa684645e64d6024b3a11e4e08da825e8220b2e Author: Brian Paul <brianp@vmware.com> Date: Fri Apr 2 16:15:16 2010 -0600 llvmpipe: assorted texture and tile/line conversion code change s The tiled/linear conversion functions take x/y positions now to allow converting only sub-regions. More texture-related helper functions. commit baad81ec5318d44bfac1e37c7643afc0836607bb Author: Brian Paul <brianp@vmware.com> Date: Tue Mar 30 13:18:40 2010 -0600 llvmpipe: convert tiled->linear upon PIPE_FLUSH_SWAPBUFFERS If we know we're about to do a swapbuffers we should immediately convert the tiled color tiles to linear instead of later in llvmpipe_texture_unmap() since we can take advantage of threading/ parallelism here. commit 928dd41256811daeddb7506a49a34dbad04beaf8 Author: Brian Paul <brianp@vmware.com> Date: Tue Mar 30 09:16:58 2010 -0600 llvmpipe: polish-up the llvmpipe_flush() code commit dd6014abcf86c517d159b8175e0eaeb167ea2ef6 Author: Brian Paul <brianp@vmware.com> Date: Tue Mar 30 09:15:17 2010 -0600 llvmpipe: SETUP_x enum clean-up commit 0b1ce6da2b28a41f3389685ab93e10b43c950f5d Author: Brian Paul <brianp@vmware.com> Date: Fri Mar 26 10:43:37 2010 -0600 llvmpipe: remove unused vars commit 4562663480f88162ed4452cb05569eecb67f9f39 Author: Brian Paul <brianp@vmware.com> Date: Fri Mar 26 10:31:55 2010 -0600 llvmpipe: cope with non-existant color/depth buffers The fragment jit functions always grab these pointers, even if they're not used. commit df4329edbaf204ed501f1eac0698b8198178f9af Author: Brian Paul <brianp@vmware.com> Date: Thu Mar 25 15:20:15 2010 -0600 llvmpipe: do all render target surface mapping/unmapping in the rast code commit 3d0c25d5ba8b8f61e8366d4c97324e45d526ff41 Author: Brian Paul <brianp@vmware.com> Date: Thu Mar 25 14:31:21 2010 -0600 llvmpipe: map z/stencil buffer on demand like color buffers Plus lots of code clean-up and loose ends taken care of. commit c3b6fddd788aef09b4b84b843b7b1272231151e8 Author: Brian Paul <brianp@vmware.com> Date: Thu Mar 25 13:15:03 2010 -0600 llvmpipe: remove unused write_zstencil field commit 63374d97836926a6357e9d6dd24a509a8e155c56 Author: Brian Paul <brianp@vmware.com> Date: Thu Mar 25 09:45:59 2010 -0600 llvmpipe: add missing lp_rast_end() call Fixes crash on window resize when LP_NUM_THREADS=0. commit 92fe9952161cc06f6edc58778e9e5a8b9ea447dc Author: Brian Paul <brianp@vmware.com> Date: Wed Mar 24 10:15:19 2010 -0600 llvmpipe: add tiled/linear conversion for 16-bit Z images commit 6605fa28c147f30df351da0e4413cab33e4db5da Author: Brian Paul <brianp@vmware.com> Date: Tue Mar 23 16:06:41 2010 -0600 llvmpipe: implement tiled/linear conversion for Z/stencil images commit 804528d84ffa292ef9d49d3666cdd3fa099ff3ff Author: Brian Paul <brianp@vmware.com> Date: Tue Mar 23 16:05:45 2010 -0600 llvmpipe: added texture stride comment commit 66a88c012edf670c4ac887a912f02dcff93266dd Author: Brian Paul <brianp@vmware.com> Date: Tue Mar 23 16:04:07 2010 -0600 llvmpipe: remove unused vars commit e2ca8d1328316dc8b36d5f688c16d109e49a6870 Author: Brian Paul <brianp@vmware.com> Date: Mon Mar 22 18:53:11 2010 -0600 llvmpipe: checkpoint WIP: overhaul texture/surface mapping Conversion between tiled and linear surfaces is working everywhere now. The LP_TEXTURE_READ/READ_WRITE/WRITE_ALL flags let us avoid unnecessary image layout conversions. Still some loose ends, temporary/debug code, etc. Need to implement tiled/linear conversion for depth/stencil images. commit f2730a03839ee8984c1f537b7cbebba24961397a Author: Brian Paul <brianp@vmware.com> Date: Mon Mar 22 14:41:58 2010 -0600 llvmpipe: rename/repurpose lp_rast_store_color() commit e192a47552c5d20d2caef452ca7697e2cd852c9b Author: Brian Paul <brianp@vmware.com> Date: Mon Mar 22 14:38:51 2010 -0600 llvmpipe: remove lp_rast_load_color() commit 3cff0bde4b4ab980e1c3e812700419091527c76b Author: Brian Paul <brianp@vmware.com> Date: Mon Mar 22 14:11:38 2010 -0600 llvmpipe: remove/consolidate texture image code commit 3a2f08b6a550c69ef5e874f482be30252cbf8bfa Author: Brian Paul <brianp@vmware.com> Date: Fri Mar 19 17:03:14 2010 -0600 llvmpipe: checkpoint WIP: directly render to tiled texture buffers We're now directly writing colors into the tiled texture image buffers. This is a checkpoint commit with lots of dead code and temporary hacks. Everything will get cleaned up eventually. commit c5ca987e03870849514d4e3c99af143722a09695 Author: Brian Paul <brianp@vmware.com> Date: Fri Mar 19 16:41:14 2010 -0600 llvmpipe: refactor code, create tile_pixel_offset() commit 2133e8273e937cbac09cd7264d6ce53af9764ddb Author: Brian Paul <brianp@vmware.com> Date: Fri Mar 19 14:55:11 2010 -0600 llvmpipe: pass LP_TEXTURE_LINEAR/TILED flags around commit b9b9d4b82b01f4588721fdc8444740f859b4a021 Author: Brian Paul <brianp@vmware.com> Date: Fri Mar 19 14:51:05 2010 -0600 llvmpipe: checkpoint WIP: hanlde co-existing tiled/linear texture data Cube maps are temporarily broken, maybe other things. commit 4cd322e6889940b5f155fcb69041b685b9ef9273 Author: Brian Paul <brianp@vmware.com> Date: Fri Mar 19 11:34:43 2010 -0600 progs/demos: add other modes/patterns to dissolve demo