summaryrefslogtreecommitdiffstats
path: root/src/gallium/include
Commit message (Collapse)AuthorAgeFilesLines
* gallium: remove TGSI_SEMANTIC_VERTICESZack Rusin2009-12-251-3/+2
| | | | | | 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.
* gallium: geometry shader can be always enabled and we don't need a cap for thatZack Rusin2009-12-251-1/+0
| | | | | using the draw module allows us to enable geometry shading even on hardware that doesn't support it.
* util: put vertices_per_primitive function in its proper locationZack Rusin2009-12-251-32/+0
|
* gallium: add an inline that returns number of vertices per primitiveZack Rusin2009-12-251-0/+32
|
* gallium: add geometry shader support to galliumZack Rusin2009-12-253-22/+36
|
* Merge branch 'gallium-edgeflags'Roland Scheidegger2009-12-222-9/+2
|\ | | | | | | | | Conflicts: src/mesa/state_tracker/st_draw.c
| * gallium: first steps to treat edgeflags as regular vertex elementKeith Whitwell2009-12-092-9/+2
| | | | | | | | | | | | | | | | | | | | 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).
* | Move the remaining format pf_get_* functions to u_format.h.Michal Krol2009-12-171-134/+0
| | | | | | | | | | Previously they depended on format blocks, but after removing those they started depending on format encoding.
* | Merge branch 'master' into pipe-format-simplifyMichal Krol2009-12-177-64/+161
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | pipe: add PIPE_MAX_TEXTURE_TYPESMarek Olšák2009-12-151-1/+2
| | |
| * | tgsi: add properties and system value registerZack Rusin2009-12-141-10/+28
| | | | | | | | | | | | | | | | | | adds support for properties to all parts of the tgsi framework, plus introduces a new register which will be used for system generated values.
| * | gallium: added comment for pipe_reference() return valueBrian Paul2009-12-111-0/+1
| |/
| * gallium: use boolean instead of bool in p_refcnt.hRoland Scheidegger2009-12-081-3/+3
| | | | | | | | all code in gallium should use boolean not bool
| * Merge branch 'gallium-strict-aliasing'Roland Scheidegger2009-12-083-14/+16
| |\
| | * gallium: fix reference counting functions to be strict-aliasing compliantRoland Scheidegger2009-12-033-14/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Historically, parts of mesa code are not strict-aliasing safe, hence -fno-strict-aliasing is needed to compile (this got forgotten for scons builds for gallium, which indeed not only caused compiler warnings but also unexplicable crashes in non-debug builds). However, we should try to eliminate code not complying with strict-aliasing code at least for gallium. Hence change pipe_reference functions to make them strict-aliasing compliant. This adds a bit more complexity (especially for derived classes) but is the right thing to do, and it does in fact fix a segfault.
| * | gallium: Disable force_align_arg_pointer attribute on x86_64.José Fonseca2009-12-041-1/+1
| | | | | | | | | | | | Apparently not only unnecessary but also causes gcc to complain.
| * | Merge branch 'gallium-noblocks'Roland Scheidegger2009-12-042-79/+52
| |\ \ | | |/ | |/| | | | | | | Conflicts: src/gallium/state_trackers/xorg/xorg_exa.c
| | * gallium: interface cleanups, remove nblocksx/y from pipe_texture and moreRoland Scheidegger2009-11-302-79/+52
| | | | | | | | | | | | | | | | | | | | | | | | 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).
* | | gallium: Make pipe_format a sequential enum.Michal Krol2009-12-081-294/+113
| | |
* | | Remove remaining pipe format utility functions.Michal Krol2009-12-081-18/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Depricate pf_type(), pf_size_*(), pf_layout() and pf_exp2(). Map depricated PIPE_FORMAT_TYPE to new UTIL_FORMAT_ values: UNKNOWN = TYPE_VOID UNORM = TYPE_UNSIGNED + LAYOUT_ARITH SNORM = TYPE_SIGNED + LAYOUT_ARITH FIXED = TYPE_FIXED FLOAT = TYPE_FLOAT USCALED = TYPE_UNSIGNED + LAYOUT_ARRAY SSCALED = TYPE_SIGNED + LAYOUT_ARRAY SRGB = TYPE_COLORSPACE_SRGB
* | | Remove pf_swizzle_* internal macros.Michal Krol2009-12-031-5/+0
| | |
* | | gallium: Remove pf_mixed_*().Michal Krol2009-12-031-11/+0
| | |
* | | gallium: Remove pf_rev().Michal Krol2009-12-031-5/+0
| | |
* | | Move pf_get_component_bits() to u_format auxiliary module.Michal Krol2009-12-031-27/+0
| | |
* | | Move pf_get_bits/size() to u_format auxiliary module.Michal Krol2009-12-031-36/+0
| | |
* | | Move pf_get_block() to u_format auxiliary module.Michal Krol2009-12-031-39/+0
| | |
* | | Move pf_is_depth_and_stencil() to u_format auxiliary module.Michal Krol2009-12-031-7/+0
| | |
* | | Move pf_is_depth_stencil() to u_format auxiliary module.Michal Krol2009-12-031-14/+0
| | |
* | | Move pf_is_compressed() to u_format auxiliary module.Michal Krol2009-12-031-6/+0
| | |
* | | gallium: Remove unused format functions.Michal Krol2009-12-031-38/+0
|/ /
* | gallium/util: added PIPE_CC_GCC_VERSION symbolBrian Paul2009-12-021-0/+1
| |
* | Merge commit 'origin/tgsi-simplify-ext'Keith Whitwell2009-12-011-145/+23
|\ \ | | | | | | | | | | | | Conflicts: src/gallium/drivers/r300/r300_vs.c
| * | gallium: Remove tgsi_version token.Michal Krol2009-11-271-6/+0
| | | | | | | | | | | | Not really needed, never served its purpose.
| * | tgsi: reduce repetition of structure name in its membersKeith Whitwell2009-11-241-4/+4
| | | | | | | | | | | | | | | Rename Semantic.SemanticName to Semantic.Name. Similar for SemanticIndex, and the members of the tgsi_version struct.
| * | gallium: simplify tgsi tokens furtherKeith Whitwell2009-11-241-137/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | gallium: Introduce separate vertex texture/sampler state.Michal Krol2009-12-013-4/+16
| |/ |/| | | | | | | | | | | | | | | | | | | Previously, gallium shared sampler and texture state between vertex and fragment shader stages. This change generalises this concept by providing separate entrypoints for vertex and fragment sampler state setting. A new capability bit is added to query the driver for the number of samplers that can be utilised by a vertex and fragment shader at the same time.
* | Merge branch 'width0'Roland Scheidegger2009-11-271-3/+3
|\ \ | |/ |/| | | | | | | | | 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-191-3/+3
| |
* | gallium: Refactor the instruction predicate TGSI token.Michal Krol2009-11-241-10/+7
|/ | | | | | | | | Rename it to tgsi_instruction_predicate -- it's no longer an extended token. Its presence is indicated by a new flag in tgsi_instruction that indicates whether an instruction is predicated. Also, change predicate index representation to match the other tokens that specify register indices.
* gallium: Add UNSYNCHRONIZED cpu access flag. Document others.José Fonseca2009-11-061-2/+57
|
* gallium: Cleanup predicate and condition code TGSI tokens.Michal Krol2009-11-022-99/+20
| | | | | | | | | | | | | | | | | | There is little point in having a special TGSI token just to handle predicate register updates. Remove tgsi_dst_register_ext_predicate token and instead use a new PREDICATE register file to update predicates. Actually, the contents of the obsolete token are being moved to tgsi_instruction_ext_predicate, where they should be from the very beginning. Remove the NVIDIA-specific condition code tokens -- nobody uses them and they can be emulated with predicates if needed. Introduce PIPE_CAP_SM3 that indicates whether a driver supports SM3-level instructions, and in particular predicates. Add PIPE_CAP_MAX_PREDICATE_REGISTERS that can be used to query the driver how many predicate registers it supports (currently it would be 1).
* gallium: Move enum pipe_error into p_defines.h.José Fonseca2009-10-252-65/+17
| | | | It's really just another define. No need for its own header.
* gallium: remove extended negate also, and also the ExtSwz tokenKeith Whitwell2009-10-231-24/+0
| | | | | | Likewise, the extended negate functionality hasn't been used since mesa switched to using tgsi_ureg to build programs, and has been translating the SWZ opcode internally to a single MAD.
* gallium: remove the swizzling parts of ExtSwizzleKeith Whitwell2009-10-231-15/+2
| | | | | | | | | 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.
* gallium: remove noise opcodesKeith Whitwell2009-10-231-4/+1
| | | | | | | | | | | Provide a dummy implementation in the GL state tracker (move 0.5 to the destination regs). At some point, a motivated person could add a better implementation of noise. Currently not even the nvidia binary drivers do anything more than this. In any case, the place to do this is in the GL state tracker, not the poor driver.
* gallium: Permit surface_copy and surface_fill to be NULL.Corbin Simpson2009-10-171-0/+3
| | | | | | | | | | | | | Uf. Lots of files touched. Would people with working vega, xorg, dri1, etc. please make sure you are not broken, and fix yourself up if you are. There were only two or three places where the code did not have painful fallbacks, so I would advise st maintainers to find less painful workarounds, or consider overhauling util_surface_copy and util_surface_fill. Per ymanton, darktama, and Dr_Jakob's suggestions, clear has been left as-is. I will not add PIPE_CAP_BLITTER unless it is deemed necessary.
* gallium: New ALIGN_STACK macro to tell gcc to align stack pointer.José Fonseca2009-10-141-0/+6
|
* gallium: Add PIPE_TRANSFER_MAP_DIRECTLY usage flag.Michel Dänzer2009-10-021-1/+12
| | | | | Asks the driver to map the texture storage directly or return NULL if that's not possible.
* gallium: Preparations for adding more PIPE_TRANSFER_* usage flags.Michel Dänzer2009-10-021-0/+16
| | | | | | Always test for PIPE_TRANSFER_READ/WRITE using the bit-wise and operator, and add a pipe_transfer_buffer_flags() helper for getting the buffer usage flags corresponding to them.
* g3dvl: Copyright blocks.Younes Manton2009-10-012-0/+54
|