Commit graph

420 commits

Author SHA1 Message Date
Jakob Bornecrantz
876a6b4865 gallium: Support swig "compiler" in p_compiler.h 2010-01-17 16:44:39 +00:00
Roland Scheidegger
5e5d0ad081 Merge branch 'gallium-noconstbuf'
Conflicts:
	src/gallium/drivers/softpipe/sp_draw_arrays.c
	src/mesa/state_tracker/st_draw_feedback.c
2010-01-15 18:09:45 +01:00
Michal Krol
5184b02b07 Merge branch 'instanced-arrays'
Conflicts:
	src/gallium/drivers/softpipe/sp_draw_arrays.c
2010-01-14 18:11:41 +01:00
Brian Paul
8519b244f7 gallium: remove forward struct decl
Other struct types (like pipe_texture) are referenced before they're
defined so no reason to special-case this one.
2010-01-13 17:39:44 -07:00
Michal Krol
8c53a2576e gallium: draw_arrays/elements_instanced() are of type void. 2010-01-12 18:51:27 +01:00
José Fonseca
26c78a4968 gallium: Rename ALIGN_STACK -> PIPE_ALIGN_STACK for consistency. 2010-01-12 12:15:24 +00:00
José Fonseca
5dfd5ed5e7 gallium: Simplify PIPE_ALIGN_VAR.
gcc allows pre-fix variable attributes.

Suggested by Ian Romanick.
2010-01-12 12:11:04 +00:00
José Fonseca
86bfe974b8 gallium: Generalize the alignment macros to other compilers and any alignment. 2010-01-12 12:11:04 +00:00
Chia-I Wu
6dafd61ab2 winsys/drm: Add name field to drm_api.
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-12 10:55:36 +08:00
Roland Scheidegger
70c8d2a297 gallium: remove const qualifier from pipe_buffer argument in set_constant_buffer 2010-01-11 16:30:48 +01:00
Chia-I Wu
108c2bf5ab gallium: Add PUBLIC macro for function visibility.
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-11 10:04:37 -05:00
Ben Skeggs
32da02f7c1 st/dri: update dri2 drawables when viewport is changed
Fixes gnome-shell on nouveau, as well as window resize with various
other applications.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2010-01-11 11:44:38 +10:00
José Fonseca
74f520861f gallium: Remove dead code. 2010-01-10 10:44:25 +00:00
José Fonseca
dc6bcc92ee gallium: Provide alternative stdint.h and stdbool.h C99 headers, instead of 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-10 10:39:29 +00:00
Luca Barbieri
f023473748 gallium: remove PIPE_TEX_FILTER_ANISO
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-06 10:35:47 +00:00
Keith Whitwell
c727fa6dbf Merge commit 'origin/gallium-draw-retval'
Conflicts:
	src/gallium/drivers/identity/id_context.c
2010-01-05 14:13:40 +00:00
Michal Krol
9b21b3c52a Merge branch 'master' into instanced-arrays
Conflicts:
	src/gallium/auxiliary/tgsi/tgsi_dump.c
	src/gallium/include/pipe/p_shader_tokens.h
2010-01-05 11:04:50 +01:00
Michal Krol
c34f6faf35 gallium: Add UMOD TGSI opcode.
Either that or have UDIV have two destination operands.
2010-01-05 09:28:27 +01:00
Michal Krol
062aab96e0 gallium: Add SWITCH, CASE, DEFAULT and ENDSWITCH opcodes to TGSI.
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-05 09:28:25 +01:00
Michal Krol
b1c55e80aa gallium: Add signed/unsigned int immediate data types. 2010-01-05 09:27:08 +01:00
Michal Krol
2c046034dc Remove TGSI_OPCODE_SHR, map existing usage to TGSI_OPCODE_ISHR.
This is to differentiate it from its unsigned version, TGSI_OPCODE_USHR.
2010-01-05 09:26:48 +01:00
Michal Krol
c59eda0993 gallium: Add more integer TGSI opcodes. 2010-01-05 09:26:43 +01:00
Brian Paul
c0b4fb06b8 gallium: pipe_context::render_condition() and mode flags
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-31 14:45:15 -07:00
Michal Krol
f7d1689cfa gallium: Move instance_divisor field from vertex_buffer to vertex_element. 2009-12-29 19:18:54 +01:00
Zack Rusin
fb0a9aa5e0 gallium: remove TGSI_SEMANTIC_VERTICES
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-25 05:52:20 -05:00
Zack Rusin
519a6d308d gallium: geometry shader can be always enabled and we don't need a cap for that
using the draw module allows us to enable geometry shading even on hardware
that doesn't support it.
2009-12-25 05:52:20 -05:00
Zack Rusin
a00da63e66 util: put vertices_per_primitive function in its proper location 2009-12-25 05:52:19 -05:00
Zack Rusin
f658fa5e8f gallium: add an inline that returns number of vertices per primitive 2009-12-25 05:52:18 -05:00
Zack Rusin
89d8577fb3 gallium: add geometry shader support to gallium 2009-12-25 05:52:16 -05:00
Roland Scheidegger
beb712ee9a gallium: API cleanup, remove pointless pipe_constant_buffer 2009-12-23 20:42:55 +01:00
Michal Krol
d0b55120be gallium: Add interfaces needed for instanced drawing. 2009-12-23 19:37:18 +01:00
Roland Scheidegger
35e8283c69 Merge branch 'gallium-edgeflags'
Conflicts:
	src/mesa/state_tracker/st_draw.c
2009-12-22 20:54:26 +01:00
Keith Whitwell
09e785ee04 gallium: remove return value from draw calls 2009-12-21 22:14:35 +00:00
Michal Krol
b1ed72ebe2 Move the remaining format pf_get_* functions to u_format.h.
Previously they depended on format blocks, but after removing those
they started depending on format encoding.
2009-12-17 23:41:57 +01:00
Michal Krol
16c6dce013 Merge branch 'master' into pipe-format-simplify
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
2009-12-17 22:37:15 +01:00
Marek Olšák
e1d0f47808 pipe: add PIPE_MAX_TEXTURE_TYPES 2009-12-15 18:00:39 +00:00
Zack Rusin
3ff688ea29 tgsi: add properties and system value register
adds support for properties to all parts of the tgsi framework, plus
introduces a new register which will be used for system generated
values.
2009-12-14 16:35:09 -05:00
Brian Paul
4430a05a3a gallium: added comment for pipe_reference() return value 2009-12-11 16:50:25 -07:00
Keith Whitwell
a08e348a84 gallium: first steps to treat edgeflags as regular vertex element
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).
2009-12-09 19:03:10 +01:00
Roland Scheidegger
fd7a9ec7f9 gallium: use boolean instead of bool in p_refcnt.h
all code in gallium should use boolean not bool
2009-12-08 19:58:28 +01:00
Roland Scheidegger
4ebc54795d Merge branch 'gallium-strict-aliasing' 2009-12-08 19:26:20 +01:00
Michal Krol
714e1880d9 gallium: Make pipe_format a sequential enum. 2009-12-08 15:35:54 +01:00
Michal Krol
6fd8b9b550 Remove remaining pipe format utility functions.
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
2009-12-08 15:30:10 +01:00
José Fonseca
818fd6b101 gallium: Disable force_align_arg_pointer attribute on x86_64.
Apparently not only unnecessary but also causes gcc to complain.
2009-12-04 21:27:03 +00:00
Roland Scheidegger
9c6a9363ef Merge branch 'gallium-noblocks'
Conflicts:
	src/gallium/state_trackers/xorg/xorg_exa.c
2009-12-04 00:35:14 +01:00
Roland Scheidegger
35a15f0263 gallium: fix reference counting functions to be strict-aliasing compliant
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.
2009-12-03 23:15:38 +01:00
Michal Krol
72befaaae5 Remove pf_swizzle_* internal macros. 2009-12-03 12:25:49 +01:00
Michal Krol
018f33a328 gallium: Remove pf_mixed_*(). 2009-12-03 12:05:21 +01:00
Michal Krol
9861ad46ab gallium: Remove pf_rev(). 2009-12-03 12:03:57 +01:00
Michal Krol
f5bd93fae2 Move pf_get_component_bits() to u_format auxiliary module. 2009-12-03 11:58:36 +01:00