summaryrefslogtreecommitdiff
path: root/src/gallium/include
AgeCommit message (Collapse)Author
2010-01-29tgsi: add caps for fragment coord conventions (v3)Luca Barbieri
Changes in v3: - Renumber caps to accomodate caps to add to master in the meantime - Document caps - Add unsupported caps to *_screen.c too Changes in v2: - Split for properties patch - Use positive caps instead of negative caps This adds 4 caps to indicate support of each of the fragment coord conventions. All drivers are also modifed to add the appropriate caps. Some drivers were incorrectly using non-Gallium-default conventions, and caps for them have them set so that they will behave correctly after the later state tracker patches. This drivers are softpipe/llvmpipe (uses integer rather than half integer) and pre-nv50 Nouveau (uses lower left rather than upper left). Other drivers might be broken. With this patchset, fixing them is only a matter of exposing the appropriate caps that match the behavior of the existing code. Drivers are encouraged to support all conventions themselves for better performance, and this feature is added to softpipe in a later patch.
2010-01-29tgsi: add properties for fragment coord conventions (v3)Luca Barbieri
Changes in v3: - Documented the new properties - Added comments for property values - Rebased to current master Changes in v2: - Caps are added in a separate, subsequent patch This adds two TGSI fragment program properties that indicate the fragment coord conventions. The properties behave as described in the extension spec for GL_ARB_fragment_coord_conventions, but the default origin in upper left instead of lower left as in OpenGL. The syntax is: PROPERTY FS_COORD_ORIGIN [UPPER_LEFT|LOWER_LEFT] PROPERTY FS_COORD_PIXEL_CENTER [HALF_INTEGER|INTEGER] The names have been chosen for consistency with the GS properties and the OpenGL extension spec. The defaults are of course the previously assumed conventions: UPPER_LEFT and HALF_INTEGER.
2010-01-28Merge commit 'origin/perrtblend'Roland Scheidegger
Conflicts: src/gallium/drivers/softpipe/sp_screen.c src/gallium/include/pipe/p_defines.h
2010-01-28gallium: remove PIPE_CAP_S3TC, and add PIPE_CAP_DUAL_SOURCE_BLENDRoland Scheidegger
there's no point in keeping deprecated PIPE_CAPS around since there's no stable interface (yet). Reuse the enum for PIPE_CAP_DUAL_SOURCE_BLEND. Drivers advertizing this will accept the pipe blendfactors with SRC1 in them and be able to do dual source blending (src color from pixel shader output 0, and blendfactor with SRC1 will come from output 1, only one render target may be bound when using any of these blend factors).
2010-01-28gallium: Add CAPs for constant buffers.Michal Krol
2010-01-28gallium: Rename PIPE_MAX_CONSTANT to PIPE_MAX_CONSTANT_BUFFERS.Michal Krol
2010-01-28gallium: Add tgsi_declaration_dimension token.Michal Krol
This will allow us to declare two-dimensional constant buffers.
2010-01-26Check for __USE_MISC for defining uint & ushortAlan Hourihane
2010-01-22Merge branch 'mesa_7_7_branch'Brian Paul
Conflicts: src/gallium/auxiliary/draw/draw_context.c src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c src/gallium/auxiliary/pipebuffer/Makefile src/gallium/auxiliary/pipebuffer/SConscript src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c src/gallium/auxiliary/tgsi/tgsi_scan.c src/gallium/drivers/i915/i915_surface.c src/gallium/drivers/i915/i915_texture.c src/gallium/drivers/llvmpipe/lp_setup.c src/gallium/drivers/llvmpipe/lp_tex_sample_c.c src/gallium/drivers/llvmpipe/lp_texture.c src/gallium/drivers/softpipe/sp_prim_vbuf.c src/gallium/state_trackers/xorg/xorg_dri2.c src/gallium/winsys/drm/intel/gem/intel_drm_api.c src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c src/gallium/winsys/drm/radeon/core/radeon_drm.c src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c src/mesa/state_tracker/st_cb_clear.c
2010-01-21gallium: New inline to write buffers which avoids synchronization.José Fonseca
2010-01-21gallium: Set PIPE_BUFFER_USAGE_DISCARD flag in pipe_buffer_write.José Fonseca
2010-01-21gallium: Remove temporary hack for the absence of a discard flag.José Fonseca
PIPE_BUFFER_USAGE_DISCARD flag now exists.
2010-01-21docs: clean up sampler descriptionRoland Scheidegger
2010-01-21gallium: fix conditional rendering commentBrian Paul
2010-01-21gallium: new PIPE_CAP bits for the independent blend functionalityRoland Scheidegger
2010-01-21gallium: updated comments, whitespace fixesBrian Paul
2010-01-20gallium: prepare for per-rendertarget blend enables, writemasks, blend funcsRoland Scheidegger
GL 3.0 (EXT_draw_buffers2) and other APIs allow independent blend enables and write masks per render target, ARB_draw_buffers_blend (and other APIs) also allow independent blend functions. Things like dithering, logic ops however are not extended to be per rendertarget, that might be conceptually possible however it doesn't look like any API wants to expose this.
2010-01-19Sun compilers now support some gcc __attribute__ valuesAlan Coopersmith
Sun cc 5.9 and later (__SUNPRO_C >= 0x590) support __attribute__ calls for aligned, always_inline, noinline, pure, const, and malloc. This commit includes updates to files that were regenerated by gl_XML.py after adding the __SUNPRO_C checks to it Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> Signed-off-by: Brian Paul <brianp@vmware.com>
2010-01-19st/drm: Expose kernel driver nameJakob Bornecrantz
Based on patch by Chia-I Wu <olvaffe@gmail.com> Expose the name of the kernel driver as accepted by drmOpenByName.
2010-01-19st/dri: update dri2 drawables when viewport is changedBen Skeggs
Fixes gnome-shell on nouveau, as well as window resize with various other applications. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2010-01-17gallium: Support swig "compiler" in p_compiler.hJakob Bornecrantz
2010-01-15Merge branch 'gallium-noconstbuf'Roland Scheidegger
Conflicts: src/gallium/drivers/softpipe/sp_draw_arrays.c src/mesa/state_tracker/st_draw_feedback.c
2010-01-14Merge branch 'instanced-arrays'Michal Krol
Conflicts: src/gallium/drivers/softpipe/sp_draw_arrays.c
2010-01-13gallium: remove forward struct declBrian Paul
Other struct types (like pipe_texture) are referenced before they're defined so no reason to special-case this one.
2010-01-12gallium: draw_arrays/elements_instanced() are of type void.Michal Krol
2010-01-12gallium: remove point_size_min and point_size_max from rasterizer stateRoland Scheidegger
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.
2010-01-12gallium: Rename ALIGN_STACK -> PIPE_ALIGN_STACK for consistency.José Fonseca
2010-01-12gallium: Simplify PIPE_ALIGN_VAR.José Fonseca
gcc allows pre-fix variable attributes. Suggested by Ian Romanick.
2010-01-12gallium: Generalize the alignment macros to other compilers and any alignment.José Fonseca
2010-01-12winsys/drm: Add name field to drm_api.Chia-I Wu
The name can be used for driver selection. It has the same name as the DRI driver does right now. Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2010-01-11gallium: remove const qualifier from pipe_buffer argument in set_constant_bufferRoland Scheidegger
2010-01-11gallium: Add PUBLIC macro for function visibility.Chia-I Wu
As the default build has -fvisibility=hidden, add a macro to control the visibility. Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2010-01-11st/dri: update dri2 drawables when viewport is changedBen Skeggs
Fixes gnome-shell on nouveau, as well as window resize with various other applications. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2010-01-10gallium: Remove dead code.José Fonseca
2010-01-10gallium: Provide alternative stdint.h and stdbool.h C99 headers, instead of ↵José Fonseca
ad-hoc definitions. Everybody is using the C99's integer types. Everybody except Microsoft, which in turns means everybody is including their own definitions of C99 integer types for MSVC, causing duplicate definitions when linking two projects. This is the case of building Gallium and LLVM with MSVC. Shipping alternative stdint.h and stdbool.h headers for MSVC allows us to share a single definition. It also removes clutter from the Gallium headers.
2010-01-06gallium: remove PIPE_TEX_FILTER_ANISOLuca Barbieri
This patch removes PIPE_TEX_FILTER_ANISO. Anisotropic filtering is enabled if and only if max_anisotropy > 1.0. Values between 0.0 and 1.0, inclusive, of max_anisotropy are to be considered equivalent, and meaning to turn off anisotropic filtering. This approach has the small drawback of eliminating the possibility of enabling anisotropic filter on either minification or magnification separately, which Radeon hardware seems to support, is currently support by Gallium but not exposed to OpenGL. If this is actually useful it could be handled by splitting max_anisotropy in two values and adding an appropriate OpenGL extension. NOTE: some fiddling & reformatting by keithw to get this patch to apply. Hopefully nothing broken in the process.
2010-01-05Merge commit 'origin/gallium-draw-retval'Keith Whitwell
Conflicts: src/gallium/drivers/identity/id_context.c
2010-01-05Merge branch 'master' into instanced-arraysMichal Krol
Conflicts: src/gallium/auxiliary/tgsi/tgsi_dump.c src/gallium/include/pipe/p_shader_tokens.h
2010-01-05gallium: Add UMOD TGSI opcode.Michal Krol
Either that or have UDIV have two destination operands.
2010-01-05gallium: Add SWITCH, CASE, DEFAULT and ENDSWITCH opcodes to TGSI.Michal Krol
Provide reference implementation of them in tgsi_exec. Note that BREAK opcode is overloaded and can be used to break out of either a loop or a switch-case statement.
2010-01-05gallium: Add signed/unsigned int immediate data types.Michal Krol
2010-01-05Remove TGSI_OPCODE_SHR, map existing usage to TGSI_OPCODE_ISHR.Michal Krol
This is to differentiate it from its unsigned version, TGSI_OPCODE_USHR.
2010-01-05gallium: Add more integer TGSI opcodes.Michal Krol
2009-12-31gallium: pipe_context::render_condition() and mode flagsBrian Paul
For conditional rendering predicated on results of an occlusion query. If this driver function is NULL, conditional rendering is not supported by the driver.
2009-12-29gallium: Move instance_divisor field from vertex_buffer to vertex_element.Michal Krol
2009-12-25gallium: remove TGSI_SEMANTIC_VERTICESZack Rusin
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.
2009-12-25gallium: geometry shader can be always enabled and we don't need a cap for thatZack Rusin
using the draw module allows us to enable geometry shading even on hardware that doesn't support it.
2009-12-25util: put vertices_per_primitive function in its proper locationZack Rusin
2009-12-25gallium: add an inline that returns number of vertices per primitiveZack Rusin
2009-12-25gallium: add geometry shader support to galliumZack Rusin