path: root/src/gallium/include
AgeCommit message (Collapse)AuthorFilesLines
2014-05-27vl: add interface for non-referenced framesLeo Liu1-0/+2
Signed-off-by: Leo Liu <> Reviewed-by: Christian König <>
2014-05-11gallium: add bit to pipe_blit_info to leave current query enabledIlia Mirkin1-0/+3
Previously the implication was that queries should be disabled during blits. However glBlitFramebuffer() is supposed to obey the current query, and this new bit will indicate that to the driver. Signed-off-by: Ilia Mirkin <> Cc: "10.2" <> Reviewed-by: Marek Olšák <>
2014-05-07gallium: add a cap for supporting 4-offset TG4 opcodesIlia Mirkin1-0/+1
Signed-off-by: Ilia Mirkin <> Reviewed-by: Roland Scheidegger <>
2014-05-07gallium: remove enum numbers from shader cap queriesBrian Paul1-32/+32
The enum numbers were just cruft. Reviewed-by: Michel Dänzer <>
2014-04-29gallium: Add PIPE_COMPUTE_CAP_MAX_CLOCK_FREQUENCYTom Stellard1-1/+2
Bruno Jiménez: v2: Updated the docs v3: Remove trailing comma Reviewed-by: Francisco Jerez <>
2014-04-28gallium: add new opcodes for ARB_gs5 bit manipulation supportIlia Mirkin1-1/+10
Signed-off-by: Ilia Mirkin <> Reviewed-by: Roland Scheidegger <>
2014-04-26gallium: add GS_INVOCATIONS propertyIlia Mirkin1-1/+2
Signed-off-by: Ilia Mirkin <> Reviewed-by: Marek Olšák <>
2014-04-26gallium: add INVOCATIONID semanticIlia Mirkin1-1/+2
Signed-off-by: Ilia Mirkin <> Reviewed-by: Marek Olšák <>
2014-04-26gallium: add basic support for ARB_sample_shadingIlia Mirkin3-1/+8
Signed-off-by: Ilia Mirkin <> Reviewed-by: Marek Olšák <> Reviewed-by: Roland Scheidegger <>
2014-04-11vl: add interface for H264 B-frame encodingChristian König1-0/+3
Signed-off-by: Christian König <>
2014-04-10gallium: add a way to query min/max texture gather offsetsIlia Mirkin1-0/+2
Defaults to providing the same offsets as MIN/MAX_TEXEL_OFFSET. For nvc0, the offset can be -32/31. Signed-off-by: Ilia Mirkin <> Reviewed-by: Marek Olšák <>
2014-04-07gallium: add support for LODQ opcodes.Dave Airlie2-2/+5
This opcode provide support for GL_ARB_texture_query_lod, Signed-off-by: Dave Airlie <> [imirkin: rebase, docs update] Signed-off-by: Ilia Mirkin <> Reviewed-by: Marek Olšák <>
2014-04-02mesa/soft/llvmpipe: add fake MSAA supportDave Airlie1-1/+2
This adds a gallium cap that allows us to fake GL3.0 by not exposing MSAA on sw rendering. It also forces the extra extensions needed for GL3.2. Signed-off-by: Dave Airlie <>
2014-03-31gallium: add interface to clear buffersIlia Mirkin1-0/+11
Signed-off-by: Ilia Mirkin <> Reviewed-by: Marek Olšák <>
2014-03-21gallium: add b5g6r5 srgb formatRoland Scheidegger1-0/+2
GL generally doesn't seem to allow srgb formats with less (or more) than 8 bit for the rgb channels, though some hw could easily do it (typically for formats with up to 10 bits for the rgb channels, at least for formats with less than 8 bits support is likely widespread even). While it may be true there aren't really any benefits for such formats, we need for it for d3d, though luckily only for b5g6r5_srgb it seems. So add this format along with the util code for conversion - since that util code is heavily tuned for 8bit srgb this isn't really all that well optimized and rounding doesn't seem right but at least it should give some halfway meaningful results. Reviewed-by: Jose Fonseca <>
2014-03-11gallium: add endian detection for OpenBSDJonathan Gray1-0/+10
Cc: "10.0" "10.1" <> Reviewed-by: Brian Paul <>
2014-03-07gallium: allow setting of the internal stream output offsetZack Rusin1-1/+1
D3D10 allows setting of the internal offset of a buffer, which is in general only incremented via actual stream output writes. By allowing setting of the internal offset draw_auto is capable of rendering from buffers which have not been actually streamed out to. Our interface didn't allow. This change functionally shouldn't make any difference to OpenGL where instead of an append_bitmask you just get a real array where -1 means append (like in D3D) and 0 means do not append. Signed-off-by: Zack Rusin <> Reviewed-by: Roland Scheidegger <> Reviewed-by: Jose Fonseca <> Reviewed-by: Marek Olšák <>
2014-03-07gallium: rename R4A4 and A4R4 formats to match their swizzleMarek Olšák1-2/+2
Like L4A4. Reviewed-by: Brian Paul <>
2014-02-25gallium: add interface for persistent and coherent buffer mappingsMarek Olšák2-3/+35
Required for ARB_buffer_storage.
2014-02-25gallium: add texture gather support to gallium (v3)Dave Airlie2-2/+6
This adds support to gallium for a TG4 instruction, and two CAPs. The first CAP is required for GL_ARB_texture_gather. The second CAP is required to expose GL_ARB_gpu_shader5. However so far we haven't found any hardware that natively exposes the textureGatherOffsets feature from GL, so just lower it for now. If hardware appears for this we can add another CAP to allow TG4 to take 4 offsets. v2: add component selection src and a cap to say hw can do it. (st can use to help control GL_ARB_gpu_shader5/GLSL 4.00). Add docs. v3: rename to SM5, add docs. Reviewed-by: Roland Scheidegger <> Signed-off-by: Dave Airlie <>
2014-02-24clover: Pass buffer offsets to the driver in set_global_binding() v3Tom Stellard1-5/+8
The offsets will be stored in the handles parameter. This makes it possible to use sub-buffers. v2: - Style fixes - Add support for constant sub-buffers - Store handles in device byte order v3: - Use endian helpers Reviewed-by: Francisco Jerez <>
2014-02-22winsys/xlib: move xlib_create_sw_winsys within the winsysEmil Velikov1-10/+0
v2: Rebase on top of vl_winsys_xsp.c removal Signed-off-by: Emil Velikov <> Reviewed-by: Jakob Bornecrantz <> (v1)
2014-02-11vl: add H264 encoding interfaceChristian König3-2/+60
Signed-off-by: Christian König <> Signed-off-by: Leo Liu <>
2014-02-09gallium: add geometry shader output limitsGrigori Goronzy1-1/+3
v2: adjust limits for radeonsi and llvmpipe v3: add documentation Cc: "10.1" <> Signed-off-by: Marek Olšák <>
2014-02-06gallium: remove PIPE_USAGE_STATICMarek Olšák1-1/+0
Reviewed-by: Brian Paul <>
2014-02-06gallium: define the behavior of PIPE_USAGE_* flags properlyMarek Olšák1-6/+7
STATIC will be removed in the following commit. v2: changed the definition of IMMUTABLE Reviewed-by: Brian Paul <>
2014-02-06gallium: remove PIPE_RESOURCE_FLAG_GEN_MIPSMarek Olšák1-1/+0
Unused. Reviewed-by: Brian Paul <>
2014-02-04gallium: remove PIPE_CAP_MAX_COMBINED_SAMPLERSMarek Olšák1-3/+0
This can be derived from the shader caps. All GPUs from ATI/AMD, NVIDIA, and INTEL have separate texture slots for each shader stage.
2014-01-23gallium: remove PIPE_CAP_SCALED_RESOLVEMarek Olšák1-1/+0
If any driver doesn't support this, it can use a blit after resolving the samples. Reviewed-by: Brian Paul <>
2014-01-17s/Tungsten Graphics/VMware/José Fonseca12-21/+21
Tungsten Graphics Inc. was acquired by VMware Inc. in 2008. Leaving the old copyright name is creating unnecessary confusion, hence this change. This was the sed script I used: $ cat tg2vmw.sed # Run as: # # git reset --hard HEAD && find include scons src -type f -not -name 'sed*' -print0 | xargs -0 sed -i -f tg2vmw.sed # # Rename copyrights s/Tungsten Gra\(ph\|hp\)ics,\? [iI]nc\.\?\(, Cedar Park\)\?\(, Austin\)\?\(, \(Texas\|TX\)\)\?\.\?/VMware, Inc./g /Copyright/s/Tungsten Graphics\(,\? [iI]nc\.\)\?\(, Cedar Park\)\?\(, Austin\)\?\(, \(Texas\|TX\)\)\?\.\?/VMware, Inc./ s/TUNGSTEN GRAPHICS/VMWARE/g # Rename emails s/ s/ s/jrfonseca-at-tungstengraphics-dot-com/jfonseca-at-vmware-dot-com/ s/jrfonseca\? s/keithw\? s/ s/thomas-at-tungstengraphics-dot-com/thellstom-at-vmware-dot-com/ s/ # Remove dead links s@Tungsten Graphics ( Graphics@g # C string src/gallium/state_trackers/vega/api_misc.c s/"Tungsten Graphics, Inc"/"VMware, Inc"/ Reviewed-by: Brian Paul <>
2014-01-17gallium: add bits for clipping points as tris (d3d-style)Roland Scheidegger1-0/+1
OpenGL does whole-point clipping, that is a large point is either fully clipped or fully unclipped (the latter means it may extend beyond the viewport as long as the center is inside the viewport). d3d9 (d3d10 has no large points) however requires points to be clipped after they are expanded to a rectangle. (Note some IHVs are known to ignore GL rules at least with some hw/drivers.) Hence add a rasterizer bit indicating which way points should be clipped (some drivers probably will always ignore this), and add the draw interaction this requires. Drivers wanting to support this and using draw must support large points on their own as draw doesn't implement vp clipping on the expanded points (it potentially could but the complexity doesn't seem warranted), and the driver needs to do viewport scissoring on such points. Conflicts: src/gallium/drivers/llvmpipe/lp_context.c src/gallium/drivers/llvmpipe/lp_state_derived.c Reviewed-by: Jose Fonseca <>
2013-12-13swrast* (gallium, classic): add MESA_copy_sub_buffer support (v3)Dave Airlie3-5/+9
This patches add MESA_copy_sub_buffer support to the dri sw loader and then to gallium state tracker, llvmpipe, softpipe and other bits. It reuses the dri1 driver extension interface, and it updates the swrast loader interface for a new putimage which can take a stride. I've tested this with gnome-shell with a cogl hacked to reenable sub copies for llvmpipe and the one piglit test. I could probably split this patch up as well. v2: pass a pipe_box, to reduce the entrypoints, as per Jose's review, add to p_screen doc comments. v3: finish off winsys interfaces, add swrast classic support as well. Reviewed-by: Jose Fonseca <> Signed-off-by: Dave Airlie <> swrast: add support for copy_sub_buffer
2013-12-12gallium: allow choosing which colorbuffers to clearMarek Olšák1-4/+15
Required for glClearBuffer, which only clears one colorbuffer attachment. Example: If the first colorbuffer is float and the second one is int: pipe->clear(pipe, PIPE_CLEAR_COLOR0, float_clear_color, ...); pipe->clear(pipe, PIPE_CLEAR_COLOR1, int_clear_color, ...); This doesn't need any driver changes yet, because all drivers just use: if (flags & PIPE_CLEAR_COLOR) .. The drivers which support GL 3.0 will have to implement it properly though.
2013-12-11llvmpipe: add plumbing for ARB_depth_clampMatthew McClure1-0/+2
With this patch llvmpipe will adhere to the ARB_depth_clamp enabled state when clamping the fragment's zw value. To support this, the variant key now includes the depth_clamp state. key->depth_clamp is derived from pipe_rasterizer_state's (depth_clip == 0), thus depth clamp is only enabled when depth clip is disabled. Reviewed-by: Roland Scheidegger <> Reviewed-by: José Fonseca <>
2013-12-10gallium/dri: Support DRI Image extension version 7Christopher James Halse Rogers1-0/+2
v2: Fix up queryImage return for ATTRIB_FD Use driver_descriptor.configuration to determine whether the driver supports DMA-BUF import/export. v3: Really, truly, fix up queryImage return for ATTRIB_FD Signed-off-by: Christopher James Halse Rogers <> Reviewed-by: Thomas Hellstrom <> Signed-off-by: Maarten Lankhorst <>
2013-12-10gallium/winsys/drm: Prepare for passing prime fds in winsys_handleChristopher James Halse Rogers1-3/+6
Signed-off-by: Christopher James Halse Rogers <> Reviewed-by: Thomas Hellstrom <> Signed-off-by: Maarten Lankhorst <>
2013-12-03gallium: add support for AMD_vertex_shader_layerMarek Olšák1-1/+2
2013-11-28gallium: new shader cap bit for the amount of sampler viewsRoland Scheidegger1-1/+2
Ever since introducing separate sampler and sampler view max this was really missing. Every driver but llvmpipe reports the same number as number of samplers for now, so nothing should break. Reviewed-by: Jose Fonseca <>
2013-11-06gallium: fix build on GNU/kFreeBSDFabio Pedretti1-1/+1
Patch from Debian package Reviewed-by: Brian Paul <> Reviewed-by: Andreas Boll <>
2013-10-28vl/h264: split fields into SPS/PPSChristian König1-24/+64
Add alot of missing fields as well. Signed-off-by: Christian König <>
2013-10-28vl: add 400 chroma format as wellChristian König1-0/+1
Signed-off-by: Christian König <>
2013-10-26implement NV_vdpau_interop v7Christian König1-0/+49
v2: Actually implement interop between the gallium state tracker and the VDPAU backend. v3: Make it also available in non legacy contexts, fix video buffer sharing. v4: deny interop if we don't have the same screen object v5: rebased on upstream changes v6: implemented VDPAUGetSurfaceivNV, improved error handling, unregister all surfaces in VDPAUFiniNV v7: squash merge with Mareks changes Signed-off-by: Christian König <>
2013-10-26gallium: add PIPE_CAP_MIXED_FRAMEBUFFER_SIZESIlia Mirkin1-1/+2
This CAP will determine whether ARB_framebuffer_object can be enabled. The nv30 driver does not allow mixing swizzled and linear zsbuf/cbuf textures. Signed-off-by: Ilia Mirkin <> Signed-off-by: Marek Olšák <>
2013-10-23gallium: new, unified pipe_context::set_sampler_views() functionBrian Paul1-15/+3
The new function replaces four old functions: set_fragment/vertex/ geometry/compute_sampler_views(). Note: at this time, it's expected that the 'start' parameter will always be zero. Reviewed-by: Roland Scheidegger <> Reviewed-by: Marek Olšák <> Tested-by: Emil Velikov <>
2013-10-09gallium: Add support for 32x32 muls with 64 bit resultsZack Rusin1-1/+4
The code introduces two new 32bit integer multiplication opcodes which can be used to produce correct 64 bit results. GLSL, OpenCL and D3D10+ require them. We use two seperate opcodes, because they match the behavior of GLSL and OpenCL, are a lot easier to add than a single opcode with multiple destinations and because there's not much (any) difference wrt code-generation. Signed-off-by: Zack Rusin <> Reviewed-by: José Fonseca <> Reviewed-by: Roland Scheidegger <> Reviewed-by: Brian Paul <>
2013-10-03gallium: remove old bind_*_sampler_states() functionsBrian Paul1-15/+0
The new bind_sampler_states() function takes a shader argument to specify the shader stage.
2013-10-03gallium: add pipe_context::bind_sampler_states()Brian Paul1-0/+5
The bind_vertex/geometry/fragment/compute_sampler_states() functions will be replaced by a single functions.
2013-09-20gallium: add flush_resource context functionMarek Olšák1-0/+13
r600g needs explicit flushing before DRI2 buffers are presented on the screen. v2: add (stub) implementations for all drivers, fix frontbuffer flushing v3: fix galahad Signed-off-by: Marek Olšák <>
2013-09-13gallium: comment that INSTANCEID doesn't include start_instanceMarek Olšák1-1/+1
Reviewed-by: Christian König <>
2013-09-11st/dri: do not create a new context for msaa copyMaarten Lankhorst1-1/+2
Commit b77316ad7594f st/dri: always copy new DRI front and back buffers to corresponding MSAA buffers introduced creating a pipe_context for every call to validate, which is not required because the callers have a context anyway. Only exception is egl_g3d_create_pbuffer_from_client_buffer, can someone test if it still works with NULL passed as context for validate? From examining the code I believe it does, but I didn't thoroughly test it. Signed-off-by: Maarten Lankhorst <> Cc: 9.2 <> Reviewed-by: Marek Olšák <>