summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw
Commit message (Collapse)AuthorAgeFilesLines
* gallium: clean up point sprite rasterizer stateRoland Scheidegger2010-02-032-10/+12
| | | | | | | | | | Don't need sprite coord origin per coord. Also, don't need separate sprite enable bit - if all coords have it diabled, then there are no point sprites (technically, there's a distinction in pre-GL3, but it only differs in having more leniency in clamping to max size, something the state tracker would need to handle and the hardware won't bother anyway). Also, use packed field for the per-coord enables. All in all, should save 3 dwords in rasterizer state (from 10 down to 7).
* gallium: remove point_size_min and point_size_max from rasterizer stateRoland Scheidegger2010-01-121-11/+0
| | | | | | | The state tracker is responsible for clamping to any graphics API enforced size min/max limits for both the static point_size setting as well as per vertex point size (in the vertex shader). Note that mesa state tracker didn't actually use these values.
* gallium: Generate a single library for auxiliaries with Make too.José Fonseca2010-01-011-47/+0
|
* scons: Aggregate all tiny libraries in a single library.José Fonseca2010-01-011-47/+0
| | | | | Makes integration of gallium into out of tree components much easier. No pratical change for components in this tree,
* gallium: remove TGSI_SEMANTIC_VERTICESZack Rusin2009-12-251-7/+6
| | | | | | it's a leftover from an early version of geometry shading support. geometry shaders now encode the primitive size in the PROPERTY token and don't need special input with their size.
* draw: disable some debugging output coming from the geometry shadersZack Rusin2009-12-251-5/+5
|
* draw/tgsi: fix geometry shader input/output swizzlingZack Rusin2009-12-251-0/+1
|
* gallium: add geometry shader support to galliumZack Rusin2009-12-2520-63/+615
|
* Merge branch 'gallium-edgeflags'Roland Scheidegger2009-12-2210-66/+71
|\ | | | | | | | | Conflicts: src/mesa/state_tracker/st_draw.c
| * gallium: edgeflags change fixesRoland Scheidegger2009-12-161-4/+7
| | | | | | | | | | | | use correct number of vertex inputs fix not running pipeline in case of edgeflags changes to mesa to tgsi translation still very broken
| * gallium: more work for edgeflags changesRoland Scheidegger2009-12-148-30/+15
| | | | | | | | | | fixes, cleanups, etc. not working yet
| * gallium: first steps to treat edgeflags as regular vertex elementKeith Whitwell2009-12-098-46/+63
| | | | | | | | | | | | | | | | | | | | The idea here is to eliminate the set_edgeflags() call in pipe_context by treating edgeflags as a regular vertex element. Edgeflags provoke special treatment in hardware, which means we need to label them in some way, in this case we'll be passing them through the vertex shader and labelling the vertex shader output with a new TGSI semantic (TGSI_SEMANTIC_EDGEFLAG).
* | Merge branch 'master' into pipe-format-simplifyMichal Krol2009-12-172-2/+0
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gallium/auxiliary/draw/draw_pipe_aaline.c src/gallium/auxiliary/draw/draw_pipe_pstipple.c src/gallium/auxiliary/util/u_blit.c src/gallium/auxiliary/util/u_gen_mipmap.c src/gallium/auxiliary/util/u_surface.c src/gallium/auxiliary/vl/vl_mpeg12_mc_renderer.c src/gallium/drivers/cell/ppu/cell_texture.c src/gallium/drivers/llvmpipe/lp_texture.c src/gallium/drivers/r300/r300_emit.c src/gallium/drivers/r300/r300_texture.c src/gallium/drivers/softpipe/sp_texture.c src/gallium/drivers/softpipe/sp_tile_cache.c src/gallium/drivers/svga/svga_state_vs.c src/gallium/include/pipe/p_format.h src/gallium/state_trackers/dri/dri_drawable.c src/gallium/state_trackers/egl/egl_surface.c src/gallium/state_trackers/python/p_device.i src/gallium/state_trackers/python/st_softpipe_winsys.c src/gallium/state_trackers/vega/api_filters.c src/gallium/state_trackers/vega/image.c src/gallium/state_trackers/vega/mask.c src/gallium/state_trackers/vega/paint.c src/gallium/state_trackers/vega/renderer.c src/gallium/state_trackers/vega/vg_tracker.c src/gallium/state_trackers/xorg/xorg_crtc.c src/gallium/state_trackers/xorg/xorg_dri2.c src/gallium/state_trackers/xorg/xorg_exa.c src/gallium/state_trackers/xorg/xorg_renderer.c src/gallium/state_trackers/xorg/xorg_xv.c src/gallium/state_trackers/xorg/xvmc/surface.c src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c src/gallium/winsys/drm/radeon/core/radeon_buffer.c src/gallium/winsys/egl_xlib/sw_winsys.c src/gallium/winsys/g3dvl/xlib/xsp_winsys.c src/gallium/winsys/gdi/gdi_llvmpipe_winsys.c src/gallium/winsys/gdi/gdi_softpipe_winsys.c src/gallium/winsys/xlib/xlib_cell.c src/gallium/winsys/xlib/xlib_llvmpipe.c src/gallium/winsys/xlib/xlib_softpipe.c src/mesa/state_tracker/st_cb_fbo.c src/mesa/state_tracker/st_cb_texture.c src/mesa/state_tracker/st_texture.c
| * Merge branch 'gallium-noblocks'Roland Scheidegger2009-12-042-2/+0
| |\ | | | | | | | | | | | | Conflicts: src/gallium/state_trackers/xorg/xorg_exa.c
| | * gallium: interface cleanups, remove nblocksx/y from pipe_texture and moreRoland Scheidegger2009-11-302-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | This patch removes nblocksx, nblocksy arrays from pipe_texture (can be recalculated if needed). Furthermore, pipe_format_block struct is gone completely (again, contains just derived state). nblocksx, nblocksy, block are also removed from pipe_transfer, together with the format enum (can be obtained from the texture associated with the transfer).
* | | Move pf_get_block() to u_format auxiliary module.Michal Krol2009-12-032-2/+5
|/ /
* | Merge commit 'origin/tgsi-simplify-ext'Keith Whitwell2009-12-014-328/+330
|\ \ | | | | | | | | | | | | Conflicts: src/gallium/drivers/r300/r300_vs.c
| * | tgsi: rename fields of tgsi_full_src_register to reduce verbosityKeith Whitwell2009-11-244-104/+104
| | | | | | | | | | | | | | | | | | | | | SrcRegister -> Register SrcRegisterInd -> Indirect SrcRegisterDim -> Dimension SrcRegisterDimInd -> DimIndirect
| * | tgsi: rename fields of tgsi_full_dst_register to reduce verbosityKeith Whitwell2009-11-244-84/+84
| | | | | | | | | | | | | | | DstRegister -> Register DstRegisterInd -> Indirect
| * | tgsi: rename fields of tgsi_full_declaration to reduce verbosityKeith Whitwell2009-11-243-38/+38
| | | | | | | | | | | | DeclarationRange -> Range
| * | tgsi: rename fields of tgsi_full_instruction to avoid excessive verbosityKeith Whitwell2009-11-244-243/+243
| | | | | | | | | | | | | | | | | | | | | | | | InstructionPredicate -> Predicate InstructionLabel -> Label InstructionTexture -> Texture FullSrcRegisters -> Src FullDstRegisters -> Dst
| * | tgsi: reduce repetition of structure name in its membersKeith Whitwell2009-11-243-17/+17
| | | | | | | | | | | | | | | Rename Semantic.SemanticName to Semantic.Name. Similar for SemanticIndex, and the members of the tgsi_version struct.
| * | gallium: simplify tgsi tokens furtherKeith Whitwell2009-11-242-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Drop anonymous 'Extended' fields, have every optional token named explicitly in its parent. Eg. there is now an Instruction.Label flag, etc. Drop destination modifiers and other functionality which cannot be generated by tgsi_ureg.c, which is now the primary way of creating shaders. Pull source modifiers into the source register token, drop the second negate flag. The source register token is now full - if we need to expand it, probably best to move all of the modifiers to a new token and have a single flag for it.
* | | draw: Update for renamed sampler/texture state setters.Michal Krol2009-12-012-8/+8
| |/ |/|
* | Merge branch 'width0'Roland Scheidegger2009-11-272-8/+8
|\ \ | | | | | | | | | | | | | | | | | | Conflicts: src/gallium/drivers/r300/r300_texture.c src/gallium/state_trackers/xorg/xorg_exa.c src/mesa/state_tracker/st_cb_texture.c
| * | gallium: don't use arrays for texture width,height,depthKeith Whitwell2009-11-192-8/+8
| | |
* | | draw: Fix max_index check.Keith Whitwell2009-11-261-1/+2
| |/ |/| | | | | | | We want to fallback to draw splitting when vertex element indices might be too high for atomic draw path (currently limited to 4095).
* | draw: Initialize variable in draw_pt.c.Vinson Lee2009-11-201-1/+2
|/
* draw: Fix memory leak.Vinson Lee2009-10-271-0/+2
| | | | This would only be hit if we got and invalid index_size.
* gallium: remove the swizzling parts of ExtSwizzleKeith Whitwell2009-10-231-26/+4
| | | | | | | | | These haven't been used by the mesa state tracker since the conversion to tgsi_ureg, and it seems that none of the other state trackers are using it either. This helps simplify one of the biggest suprises when starting off with TGSI shaders.
* Merge branch 'mesa_7_6_branch'Brian Paul2009-10-053-11/+4
|\ | | | | | | | | | | Conflicts: src/gallium/auxiliary/util/u_cpu_detect.c
| * gallium: replace // comments with /* */Brian Paul2009-10-022-4/+4
| |
| * gallium: remove // comment and extra whitespaceBrian Paul2009-10-021-7/+0
| |
* | draw: fix warningKeith Whitwell2009-09-241-1/+1
|/
* draw: Remove unused variable.José Fonseca2009-08-131-1/+0
|
* Merge branch 'mesa_7_5_branch'Keith Whitwell2009-08-131-22/+55
|\
| * draw: cope with more primitives in draw_pipeline_runKeith Whitwell2009-08-131-22/+55
| | | | | | | | | | | | | | | | This previously was used only for decomposed (POINT/LINE/TRI) primitives, but for some time a full range of primitives could end up in here. Fixes trivial/lineloop-clip on softpipe, among others. (cherry picked from commit 87cd8a3b8a2407b30916be418ff2f95dfea5d2ad)
* | draw: fix-ups for point coord attributeBrian Paul2009-07-311-12/+36
| | | | | | | | progs/glsl/pointcoord.c works again
* | draw: correct address for machine struct in llvm pathKeith Whitwell2009-07-231-1/+1
| | | | | | | | This changed after a recent commit.
* | gallium: remove multiple aliases for TGSI opcodesKeith Whitwell2009-07-221-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a source of ongoing confusion. TGSI has multiple names for opcodes where the same semantics originate in multiple shader APIs. For instance, TGSI includes both Mesa/GLSL and DX/SM30 names for opcodes with the same semantics, but aliases those names to the same underlying opcode number. This makes it very difficult to visually inspect two sets of opcodes (eg in state tracker & driver) and check if they implement the same functionality. This patch arbitarily rips out the versions of the opcodes not currently favoured by the mesa state tracker and leaves us with a single name for each distinct operation.
* | gallium: simplify tgsi_full_immediate structKeith Whitwell2009-07-222-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | Remove the need to have a pointer in this struct by just including the immediate data inline. Having a pointer in the struct introduces complications like needing to alloc/free the data pointed to, uncertainty about who owns the data, etc. There doesn't seem to be a need for it, and it is unlikely to make much difference plus or minus to performance. Added some asserts as we now will trip up on immediates with more than four elements. There were actually already quite a few such asserts, but the >4 case could be used in the future to specify indexable immediate ranges, such as lookup tables.
* | tgsi: get texturing working in vertex shader sse2 pathKeith Whitwell2009-07-201-0/+4
| | | | | | | | Missing file from previous commit.
* | draw: fix ppc build regressionKeith Whitwell2009-07-161-0/+1
| | | | | | | | Found by x.org tinderbox, reported by Chris Ball.
* | tgsi: reduce x86 reg usage in tgsi_sse generated programsKeith Whitwell2009-07-161-19/+5
| | | | | | | | | | | | Pass the tgsi_exec_machine struct in directly and just hold a single pointer to this struct, rather than keeping one for each of its internal members.
* | gallium: reduce recursive include of tgsi_exec.hKeith Whitwell2009-07-164-1/+6
| | | | | | | | A lot of draw code no longer needs to see this header.
* | gallium: proper constructor and destructor for tgsi_exec_machineKeith Whitwell2009-07-164-21/+6
| | | | | | | | | | Centralize the creation, initialization and destruction of this struct. Use align_malloc instead of home-brew alternatives.
* | gallium/draw: sketch out some missing pointcoord codeBrian Paul2009-06-291-1/+11
| | | | | | | | | | | | The gl_PointCoord attribute is currently expected to be in the fog coord register's z/w components. This was never totally fleshed out though. This is just some placeholder code.
* | Merge branch 'mesa_7_5_branch'Brian Paul2009-06-241-1/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/mesa/drivers/dri/i915/i915_tex_layout.c src/mesa/drivers/dri/i965/brw_wm_glsl.c src/mesa/drivers/dri/intel/intel_buffer_objects.c src/mesa/drivers/dri/intel/intel_pixel_bitmap.c src/mesa/drivers/dri/intel/intel_pixel_draw.c src/mesa/main/enums.c src/mesa/main/texstate.c src/mesa/vbo/vbo_exec_array.c
| * draw: Replace pointer arithmetic with cast.José Fonseca2009-06-181-1/+2
| | | | | | | | | | | | | | Using uintptr_t as intermediate type for pointer -> integer conversions is easier to understand and does not cause any size mismatch warnings. uintptr_t is part of C99, and we already provide a suitable replacement definition for all platforms we care about.
* | draw: use u_reduced_prim() functionBrian Paul2009-06-194-28/+4
| |