summaryrefslogtreecommitdiffstats
path: root/src/gallium/include
Commit message (Collapse)AuthorAgeFilesLines
* gallium: interface changes necessary to implement transform feedback (v5)Marek Olšák2011-12-153-38/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Namely: - EXT_transform_feedback - ARB_transform_feedback2 - ARB_transform_feedback_instanced The old interface was not useful for OpenGL and had to be reworked. This interface was originally designed for OpenGL, but additional changes have been made in order to make st/d3d1x support easier. The most notable change is the stream-out info must be linked with a vertex or geometry shader and cannot be set independently. This is due to limitations of existing hardware (special shader instructions must be used to write into stream-out buffers), and it's also how OpenGL works (stream outputs must be specified prior to linking shaders). Other than that, each stream output buffer has a "view" into it that internally maintains the number of bytes which have been written into it. (one buffer can be bound in several different transform feedback objects in OpenGL, so we must be able to have several views around) The set_stream_output_targets function contains a parameter saying whether new data should be appended or not. Also, the view can optionally be used to provide the vertex count for draw_vbo. Note that the count is supposed to be stored in device memory and the CPU never gets to know its value. OpenGL way | Gallium way ------------------------------------ BeginTF = set_so_targets(append_bitmask = 0) PauseTF = set_so_targets(num_targets = 0) ResumeTF = set_so_targets(append_bitmask = ~0) EndTF = set_so_targets(num_targets = 0) DrawTF = use pipe_draw_info::count_from_stream_output v2: * removed the reset_stream_output_targets function * added a parameter append_bitmask to set_stream_output_targets, each bit specifies whether new data should be appended to each buffer or not. v3: * added PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME for ARB_tfb2, note that the draw-auto subset is always required (for d3d10), only the pause/resume functionality is limited if the CAP is not advertised v4: * update gallium/docs v5: * compactified struct pipe_stream_output_info, updated dump/trace
* mesa: add const flags to skip MaxVarying and MaxUniform linker checks (v2)Marek Olšák2011-12-131-1/+3
| | | | | | | | | This is only temporary until a better solution is available. v2: print warnings and add gallium CAPs Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* vl: Add missing mpeg fields to pipe_mpeg12_picture_descMaarten Lankhorst2011-12-111-0/+3
| | | | Signed-off-by: Maarten Lankhorst <[email protected]>
* gallium: implement ARB_conservative_depthMarek Olšák2011-12-101-1/+9
| | | | This adds a new TGSI property to represent the GLSL layout qualifier in TGSI.
* gallium: add PIPE_FORMAT_ETC1_RGB8Chia-I Wu2011-12-021-0/+3
| | | | | | | The format is defined by GL_OES_compressed_ETC1_RGB8_texture. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* Remove windows kernel support code.José Fonseca2011-11-291-12/+2
| | | | | | Not actively used. Reviewed-by: Brian Paul <[email protected]>
* gallium: add B10G10R10A2_UINT formatDave Airlie2011-11-271-0/+1
| | | | | | This format is used for ARB_texture_rgb10_a2ui extension. Signed-off-by: Dave Airlie <[email protected]>
* gallium: remove trailing comma and unneeded comments in p_defines.hBrian Paul2011-11-221-4/+4
|
* gallium: separate out floating-point CAPs into its own enumMarek Olšák2011-11-222-12/+20
| | | | | | | | | | | | | | | The motivation behind this is to add some self-documentation in the code about how each CAP can be used. The idea is: - enum pipe_cap is only valid in get_param - enum pipe_capf is only valid in get_paramf Which CAPs are floating-point have been determined based on how everybody except svga implemented the functions. svga have been modified to match all the other drivers. Besides that, the floating-point CAPs are now prefixed with PIPE_CAPF_.
* gallium: remove PIPE_CAP_GLSL and enable GLSL unconditionallyMarek Olšák2011-11-221-1/+0
| | | | | Only i965g does not enable GLSL, but that driver has been unmaintained and bitrotting for quite a while anyway.
* gallium: add PIPE_SHADER_CAP_OUTPUT_READVadim Girlin2011-11-211-1/+2
| | | | | | | It's intended to indicate whether the driver/hardware supports reading of the values written into shader outputs. Signed-off-by: Vadim Girlin <[email protected]>
* gallium: add TGSI_SEMANTIC_VERTEXIDChristoph Bumiller2011-11-141-2/+3
|
* state_trackers/vdpau: Add support for VC-1 decodingMaarten Lankhorst2011-11-031-0/+34
| | | | | | Add a struct with all the fields. Signed-off-by: Maarten Lankhorst <[email protected]>
* state_trackers/vdpau: Add support for MPEG4 Part 2Maarten Lankhorst2011-11-031-0/+27
| | | | | | Just the support patch, no decoder implements it currently. Signed-off-by: Maarten Lankhorst <[email protected]>
* state_trackers/vdpau: Add num_slices to mpeg12 picture structureMaarten Lankhorst2011-11-031-0/+1
| | | | | | Bitstream parsers might need that field. Signed-off-by: Maarten Lankhorst <[email protected]>
* Add solaris detection for PIPE_ARCH_LITTLE_ENDIAN/PIPE_ARCH_BIG_ENDIANAlan Coopersmith2011-10-201-0/+9
| | | | Signed-off-by: Alan Coopersmith <[email protected]>
* gallium: add new query types and missing documentationChristoph Bumiller2011-10-201-8/+11
|
* gallium: add PIPE_BIND_BLENDABLE flagChristoph Bumiller2011-10-151-4/+5
| | | | | | | | | This is required for an accurate implementation of d3d1x's CheckFormatSupport query. It also seems generally useful for state trackers, which could choose alternative rendering paths or formats if blending would come at a significant performance loss.
* drm_driver: Add a configuration function to the driver descriptor.Thomas Hellstrom2011-10-141-1/+46
| | | | | | | | Adds a possibility for the state tracker manager to query the target for a specific configuration. Signed-off-by: Thomas Hellstrom <[email protected]> Reviewed-by: Jakob Bornecrantz <[email protected]>
* gallium: rename ZS stencil type to UINT (v2)Dave Airlie2011-10-111-7/+7
| | | | | | | | | | these are never USCALED, always UINT in reality. taken from some work by Christoph Bumiller v2: fixup formatting of table + tabs Signed-off-by: Dave Airlie <[email protected]>
* gallium: add initial pure integer support (v2)Dave Airlie2011-10-081-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | | This add support for unsigned/signed integer types via adding a 'pure' bit in the format description table. It adds 4 new u_format get/put hooks, for get/put uint and get/put sint so that accessors can get native access to the integer bits. This is used to avoid precision loss via float converting paths. It doesn't add any float fetchers for these types at the moment, GL doesn't require float fetching from these types and I expect we'll introduce a lot of hidden bugs if we start allowing such conversions without an API mandating it. It adds all formats from EXT_texture_integer and EXT_texture_rg. 0 regressions on llvmpipe here with this. (there is some more follow on code in my gallium-int-work branch, bringing softpipe and mesa to a pretty integer clean state) v2: fixup python generator to get signed->unsigned and unsigned->signed fetches working. Signed-off-by: Dave Airlie <[email protected]>
* gallium: add PIPE_CAP_TEXTURE_BARRIERMarek Olšák2011-09-301-1/+2
| | | | | | Same issue as with conditional_render. Reviewed-by: Brian Paul <[email protected]>
* gallium: add PIPE_CAP_CONDITIONAL_RENDERMarek Olšák2011-09-301-1/+2
| | | | | | | We were checking whether render_condition is set. That was not reliable, because it's always set with trace and noop regardless of driver support. Reviewed-by: Brian Paul <[email protected]>
* gallium: add and use PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERSMarek Olšák2011-09-301-3/+2
| | | | | | | | | This removes: - PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS - PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS in favor of the that new per-shader cap. Reviewed-by: Brian Paul <[email protected]>
* gallium: remove PIPE_CAP_TEXTURE_MIRROR_REPEATMarek Olšák2011-09-301-1/+0
| | | | | | | | | | All drivers support it (well, except Cell). The boolean option is going away from core Mesa too. This is a follow-up to Ian Romanick's patch "mesa: Remove ARB_texture_mirrored_repeat extension enable flag". Reviewed-by: Brian Paul <[email protected]>
* gallium: add polygon offset clamp stateChristoph Bumiller2011-09-281-0/+1
| | | | This is required for D3D1x and supported by hardware.
* gallium: move border color to be a color unionDave Airlie2011-09-271-1/+1
| | | | | | | | | | EXT_texture_integer also specifies border color should be a color union, the values are used according to the texture sampler format. (update docs) Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* gallium: remove trailing comma to silence warningBrian Paul2011-09-201-1/+1
|
* Gallium: Increase PIPE_MAX_CLIP_PLANES to 8.Paul Berry2011-09-201-1/+1
| | | | | | | | Since Mesa is now capable of supporting up to 8 clipping planes instead of 6, this patch updates Gallium internals to support 8 clipping planes as well. Reviewed-by: Brian Paul <[email protected]>
* gallium: move clear paths from rgba to a pointer to a color union (v2)Dave Airlie2011-09-182-5/+11
| | | | | | | | | | | | | | | This moves the gallium interface for clears from using a pointer to 4 floats to a pointer to a union of float/unsigned/int values. Notes: 1. the value is opaque. 2. only when the value is used should it be interpretered according to the surface format it is going to be used with. 3. float clears on integer buffers and vice-versa are undefined. v2: fixed up vega and graw, dropped hunks that shouldn't have been in patch. Signed-off-by: Dave Airlie <[email protected]>
* g3dvl: Add max_references parameter to vl_create_decoder()Emeric Grange2011-09-142-1/+2
| | | | Signed-off-by: Emeric Grange <[email protected]>
* gallium: add TGSI opcodes UARL and UCMPBryan Cain2011-09-101-1/+4
| | | | | | | They are needed by glsl_to_tgsi for an efficient implementation using native integers. Reviewed-by: Brian Paul <[email protected]>
* gallium: add shadow 1D and 2D array samplers to TGSIMarek Olšák2011-09-101-2/+4
| | | | And filling in all the switch statements in auxiliary. Mostly untested.
* gallium: add PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERSMarek Olšák2011-09-101-1/+1
| | | | v2: remove PIPE_CAP_ARRAY_TEXTURES in favor of the new CAP.
* Define INLINE macro in terms of inline.José Fonseca2011-09-081-11/+14
|
* gallium: add missing formats for ARB_vertex_type_2_10_10_10_revDave Airlie2011-09-051-0/+7
| | | | | | | This just reorgs one define in csv file, and adds all the new formats that are needed for this extension. Signed-off-by: Dave Airlie <[email protected]>
* gallium: add caps for MIN/MAX texel offsets.Dave Airlie2011-09-021-1/+3
| | | | | | | | As per Brian's suggestion, add caps for drivers that support texture offsets to advertise a min/max via TGSI, also use it in the state tracker. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* tgsi: add support for texture offsets to the TGSI IR. (v2)Dave Airlie2011-09-021-1/+19
| | | | | | | | | | | | | This adds tokens for texture offsets, to store 4 * swizzled vec 3 for use in TXF and other opcodes. It also contains TGSI exec changes for softpipe to use this code, along with GLSL->TGSI support for TXF. v2: add some more comments, add back padding I removed. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* gallium: add R8A8 and A8R8 UNORM formatsChristian König2011-09-011-0/+2
| | | | | | They are mostly used for menu overlay in video decoding. Signed-off-by: Christian König <[email protected]>
* gallium: try to cleanup a bit of the format mess created with pipe-video mergeChristian König2011-09-011-2/+3
| | | | | | Start with correctly defining IA44 and AI44 formats. Signed-off-by: Christian König <[email protected]>
* include/pipe: Fix include styleKai Wasserbäch2011-08-292-6/+6
| | | | | | | | | | | As explained in the thread starting at [0], the internal include style should be »#include "path/to/header.h"« for non-system includes. [0] <http://news.gmane.org/find-root.php?message_id=%3c4E5802BE.6020206%40vmware.com%3e> Signed-off-by: Kai Wasserbäch <[email protected]> Signed-off-by: Brian Paul <[email protected]>
* g3dvl: Rewrite the mpeg 1&2 bitstream parserChristian König2011-08-261-0/+11
| | | | | | | Based on work of Maarten Lankhorst this time. Signed-off-by: Christian König <[email protected]> Reviewed-by: Younes Manton <[email protected]>
* g3dvl: Rework the decoder interface part 5/5Christian König2011-08-262-2/+15
| | | | | | | | Make setting the quant matrixes a generic interface. Also removes setting the quant matrix from the XvMC interface Signed-off-by: Christian König <[email protected]> Reviewed-by: Younes Manton <[email protected]>
* g3dvl: Rework the decoder interface part 4/5Christian König2011-08-261-4/+8
| | | | | | | | Make the picture_structure enum spec complient. Also remove it from the compositor. Signed-off-by: Christian König <[email protected]> Reviewed-by: Younes Manton <[email protected]>
* g3dvl: Rework the decoder interface part 3/5Christian König2011-08-262-56/+79
| | | | | | | | Revert back to a macroblock based interface. The structure used tries to keep as close to the spec as possible. Signed-off-by: Christian König <[email protected]> Reviewed-by: Younes Manton <[email protected]>
* g3dvl: Rework the decoder interface part 2/5Christian König2011-08-261-1/+2
| | | | | | | | Implement PIPE_CAP_NUM_BUFFERS_DESIRED giving the decoder control over the number of buffers a state tracker should allocate. Signed-off-by: Christian König <[email protected]> Reviewed-by: Younes Manton <[email protected]>
* g3dvl: Rework the decoder interface part 1/5Christian König2011-08-261-28/+42
| | | | | | | | | First of all get ride of the decode_buffer structure, while still giving the decoder the ability to organize it's buffers depending on the needs of the state tracker. Signed-off-by: Christian König <[email protected]> Reviewed-by: Younes Manton <[email protected]>
* gallium: add PIPE_OS_ANDROID supportChia-I Wu2011-08-212-0/+10
| | | | | | | Android uses Linux kernel and its own C runtime. It resembles PIPE_OS_LINUX a lot with some minor exceptions. Reviewed-by: Brian Paul <[email protected]>
* gallium: silence warnings about trailing commas in enum listsBrian Paul2011-08-082-2/+2
|
* Merge branch 'glsl-to-tgsi'Bryan Cain2011-08-041-0/+1
|\ | | | | | | | | | | Conflicts: src/mesa/state_tracker/st_atom_pixeltransfer.c src/mesa/state_tracker/st_program.c