mesa.git
14 years agor300/compiler: Print debug info for flow control instructions.
Tom Stellard [Tue, 15 Jun 2010 08:46:47 +0000 (01:46 -0700)]
r300/compiler: Print debug info for flow control instructions.

14 years agor300/compiler: Enable hardware IF statements for r500 cards.
Tom Stellard [Tue, 15 Jun 2010 08:42:06 +0000 (01:42 -0700)]
r300/compiler: Enable hardware IF statements for r500 cards.

14 years agor300/compiler: In the peephole optimizer, ELSE should mark the end of a
Tom Stellard [Tue, 15 Jun 2010 05:30:02 +0000 (22:30 -0700)]
r300/compiler: In the peephole optimizer, ELSE should mark the end of a
block.

14 years agor300/compiler: Correctly calculate the max number of iterations for loops.
Tom Stellard [Sun, 13 Jun 2010 05:12:32 +0000 (22:12 -0700)]
r300/compiler: Correctly calculate the max number of iterations for loops.

14 years agor300/compiler: Handle loops in deadcode analysis.
Tom Stellard [Sat, 12 Jun 2010 06:09:36 +0000 (23:09 -0700)]
r300/compiler: Handle loops in deadcode analysis.

This also allows us to split the loop emulation into two phases.  A
tranformation phase which either unrolls loops or prepares them to be
emulated, and the emulation phase which unrolls remaining loops until the
instruction limit is reached.  The second phase is completed after the
deadcode analysis in order to get a more accurate count of the number of
instructions in the body of loops.

14 years agoosmesa: remove old renderbuffer before adding new
Brian Paul [Sat, 3 Jul 2010 00:18:15 +0000 (18:18 -0600)]
osmesa: remove old renderbuffer before adding new

Fixes fd.o bug 10966 when OSMesaMakeCurrent() was called twice.

NOTE: This is a candidate for the 7.8 branch.

14 years agomesa: updated instruction comments
Brian Paul [Fri, 2 Jul 2010 18:22:33 +0000 (12:22 -0600)]
mesa: updated instruction comments

14 years agomesa: add geometry shader fields to gl_shader_program
Brian Paul [Fri, 2 Jul 2010 21:34:58 +0000 (15:34 -0600)]
mesa: add geometry shader fields to gl_shader_program

These 3 fields are per shader-program.  Copy them into the geometry
program at link time for convenient access later.

Also, add some missing glGetProgramiv() queries.

14 years agogallivm: Do 4ubyte AoS texture filtering for any format that can be expressed.
José Fonseca [Fri, 2 Jul 2010 17:42:49 +0000 (18:42 +0100)]
gallivm: Do 4ubyte AoS texture filtering for any format that can be expressed.

Except if it has only one channel, as it would take the same number of
instructions.

14 years agogallivm: Use util_format_description::fetch_rgba_8unorm() when available.
José Fonseca [Fri, 2 Jul 2010 17:38:50 +0000 (18:38 +0100)]
gallivm: Use util_format_description::fetch_rgba_8unorm() when available.

14 years agoutil: Add a fetch_rgba_8unorm.
José Fonseca [Fri, 2 Jul 2010 17:38:11 +0000 (18:38 +0100)]
util: Add a fetch_rgba_8unorm.

Not always implemented, but useful in situations where we want 8unorms
and the samples comes as 8unorms as we needlessly convert to/from
floats.

14 years agogallivm: Support multiple pixels in lp_build_fetch_rgba_aos().
José Fonseca [Fri, 2 Jul 2010 17:36:43 +0000 (18:36 +0100)]
gallivm: Support multiple pixels in lp_build_fetch_rgba_aos().

This allows to do the unpacking of formats that fit in 4 x unorm8 in
parallel, 4 pixels at a time.

14 years agogallivm: Move lp_build_rgba8_to_f32_soa() to lp_bld_format_soa.c
José Fonseca [Fri, 2 Jul 2010 15:59:39 +0000 (16:59 +0100)]
gallivm: Move lp_build_rgba8_to_f32_soa() to lp_bld_format_soa.c

It will be more useful here.

14 years agogallivm: Move gather functions to its own module.
José Fonseca [Fri, 2 Jul 2010 15:57:57 +0000 (16:57 +0100)]
gallivm: Move gather functions to its own module.

They need to grow, and they provide basic functionality which is not
specific to sampling.

14 years agogallivm: Check inputs/outputs in lp_build_conv()
José Fonseca [Fri, 2 Jul 2010 15:55:27 +0000 (16:55 +0100)]
gallivm: Check inputs/outputs in lp_build_conv()

14 years agoutil: Expose util_format_fits_8unorm().
José Fonseca [Fri, 2 Jul 2010 15:52:19 +0000 (16:52 +0100)]
util: Expose util_format_fits_8unorm().

14 years agomesa: fix texenv generation when num color bufs == 0
Brian Paul [Fri, 2 Jul 2010 16:16:05 +0000 (10:16 -0600)]
mesa: fix texenv generation when num color bufs == 0

Before, if there were no color buffers enabled (with glDrawBuffers(GL_NONE))
when the texenv program was generated, we'd emit writes to OUTPUT[1] but
the OutputsWritten mask was 0.  This inconsistency caused an assertion to
fail later in the Mesa->TGSI translation.

Fixes fd.o bug 28169

NOTE: this is a candidate for the 7.8 branch (and depends on commit
b6b9b17d27c570cc99ae339e595cf2f63ca5e8d7).

14 years agosoftpipe: fix incorrect blend func index passed to blend_quad()
Brian Paul [Fri, 2 Jul 2010 15:53:48 +0000 (09:53 -0600)]
softpipe: fix incorrect blend func index passed to blend_quad()

Need to pass the index indicating which blend terms to use, not which
color buffer we're blending into.

Rename the parameter to blend_quad() and add comments to be more clear
about this.

14 years agosoftpipe: better assertions
Brian Paul [Fri, 2 Jul 2010 15:53:08 +0000 (09:53 -0600)]
softpipe: better assertions

14 years agomesa: add missing error checks in _mesa_program_parameteri()
Brian Paul [Fri, 2 Jul 2010 15:09:06 +0000 (09:09 -0600)]
mesa: add missing error checks in _mesa_program_parameteri()

14 years agomain: change some GS field types, added comments
Brian Paul [Fri, 2 Jul 2010 15:07:36 +0000 (09:07 -0600)]
main: change some GS field types, added comments

14 years agomesa: make the number of draw buffers part of the texenv program key state
Brian Paul [Fri, 2 Jul 2010 14:14:54 +0000 (08:14 -0600)]
mesa: make the number of draw buffers part of the texenv program key state

All the state that effects the program should be in the key.
This didn't help with bug 28169 but is a good fix anyway.

NOTE: this is a low-priority candidate for the 7.8 branch.  In practice,
this issue might never be hit.

14 years agogallium/cso: check for set_vertex_sampler_views != NULL before calling it
Brian Paul [Fri, 2 Jul 2010 14:07:34 +0000 (08:07 -0600)]
gallium/cso: check for set_vertex_sampler_views != NULL before calling it

Not all drivers implement this method.
Fixes regression reported by Chris Rankin and bug 28889.

14 years agomesa: Silence warning.
José Fonseca [Fri, 2 Jul 2010 10:40:36 +0000 (11:40 +0100)]
mesa: Silence warning.

14 years agogallivm: Code generate YUV format unpacking.
José Fonseca [Fri, 2 Jul 2010 10:40:22 +0000 (11:40 +0100)]
gallivm: Code generate YUV format unpacking.

14 years agogallivm: Fix 4 x unorm8 -> 4 x float conversion.
José Fonseca [Thu, 1 Jul 2010 17:27:39 +0000 (18:27 +0100)]
gallivm: Fix 4 x unorm8 -> 4 x float conversion.

Also fix the test.

14 years agor600: use gallium list macros instead of making our own.
Dave Airlie [Fri, 2 Jul 2010 05:27:17 +0000 (15:27 +1000)]
r600: use gallium list macros instead of making our own.

before this change, r600 glxinfo segfaulted in the list code, and I wasn't
debugging another linked list implementation, its 2010 after all.

So add the two missing list macros to the gallium header from X.org list header file (after fixing them), then port all r600 lists to the new header.

Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agomesa: extension flags and version testing for GL 3.x features
Brian Paul [Thu, 1 Jul 2010 22:30:00 +0000 (16:30 -0600)]
mesa: extension flags and version testing for GL 3.x features

14 years agomesa: entrypoints for GL 3.1 primitive restart
Brian Paul [Thu, 1 Jul 2010 22:04:46 +0000 (16:04 -0600)]
mesa: entrypoints for GL 3.1 primitive restart

14 years agoUse GLW_CFLAGS when building libGLw
Dan Nicholson [Thu, 1 Jul 2010 19:58:57 +0000 (12:58 -0700)]
Use GLW_CFLAGS when building libGLw

We check for libX11 and libXt, so we might as well use the CFLAGS
pkg-config tells us about.

14 years agoUse GLUT_CFLAGS when building glut
John Hein [Thu, 1 Jul 2010 19:53:28 +0000 (12:53 -0700)]
Use GLUT_CFLAGS when building glut

Fix this build error (in MesaGLUT-7.6.1)...
glut_cmap.c:23:66: error: X11/Xmu/StdCmap.h: No such file or directory

...by not preventing the cflags that pkg-config finds for glut dependencies
(including 'xmu') from being used.

Defining GLUT_CFLAGS before running the pkg-config prevents the
cflags found by pkg-config from being used.

This patch lets GLUT_CFLAGS that configure & pkg-config work
so hard to set actually get used.

Also make sure the generated configs/autoconf defines GLUT_CFLAGS
used in (at least) src/glut/glx/Makefile.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
14 years agomesa: Purge macros NEED_EVENTS and NEED_REPLIES
Fernando Carrijo [Thu, 1 Jul 2010 16:29:56 +0000 (09:29 -0700)]
mesa: Purge macros NEED_EVENTS and NEED_REPLIES

Signed-off-by: Fernando Carrijo <fcarrijo@yahoo.com.br>
Signed-off-by: Brian Paul <brianp@vmware.com>
14 years agogallium/cso: unbind sampler views in cso_release_all()
Brian Paul [Thu, 1 Jul 2010 17:43:18 +0000 (11:43 -0600)]
gallium/cso: unbind sampler views in cso_release_all()

14 years agomesa: free xform feedback hash table
Brian Paul [Thu, 1 Jul 2010 17:07:32 +0000 (11:07 -0600)]
mesa: free xform feedback hash table

14 years agost/mesa: fix comment
Brian Paul [Thu, 1 Jul 2010 17:07:12 +0000 (11:07 -0600)]
st/mesa: fix comment

14 years agollvmpipe: silence pointer type warnings
Brian Paul [Thu, 1 Jul 2010 15:15:31 +0000 (09:15 -0600)]
llvmpipe: silence pointer type warnings

14 years agogallivm: Support 4 x unorm8 in lp_build_fetch_rgba_aos().
José Fonseca [Thu, 1 Jul 2010 12:57:48 +0000 (13:57 +0100)]
gallivm: Support 4 x unorm8 in lp_build_fetch_rgba_aos().

Uses code and ideas from Brian Paul.

14 years agogallivm: Allow to conversions to/from registers of different sizes.
José Fonseca [Thu, 1 Jul 2010 11:33:34 +0000 (12:33 +0100)]
gallivm: Allow to conversions to/from registers of different sizes.

Allow for example to convert from 4 x float32 to 4 x unorm8 and vice versa.

Uses code and ideas from Brian Paul.

14 years agogallivm: Support extended swizzles in lp_build_swizzle1_aos().
José Fonseca [Thu, 1 Jul 2010 11:16:09 +0000 (12:16 +0100)]
gallivm: Support extended swizzles in lp_build_swizzle1_aos().

And rename to lp_build_swizzle_aos().

14 years agogallivm: Setup a global optimization pass.
José Fonseca [Thu, 10 Jun 2010 15:25:39 +0000 (16:25 +0100)]
gallivm: Setup a global optimization pass.

Modules are still free to setup their own optimization passes, but for the
normal case it should not be necessary.

14 years agollvmpipe: Remove lp_build_swizzle2_aos().
José Fonseca [Thu, 1 Jul 2010 09:14:46 +0000 (10:14 +0100)]
llvmpipe: Remove lp_build_swizzle2_aos().

Unnecessary special case.

14 years agollvmpipe: another null pointer check
Brian Paul [Wed, 30 Jun 2010 17:56:56 +0000 (11:56 -0600)]
llvmpipe: another null pointer check

14 years agollvmpipe: use dummy tile when out of memory
Brian Paul [Wed, 30 Jun 2010 17:57:14 +0000 (11:57 -0600)]
llvmpipe: use dummy tile when out of memory

14 years agollvmpipe: added new lp_memory.[ch] files
Brian Paul [Wed, 30 Jun 2010 17:49:40 +0000 (11:49 -0600)]
llvmpipe: added new lp_memory.[ch] files

Functions for using dummy tiles when we detect OOM conditions.

14 years agodraw: fix out of memory handling in polygon stipple stage
Brian Paul [Wed, 30 Jun 2010 17:46:17 +0000 (11:46 -0600)]
draw: fix out of memory handling in polygon stipple stage

14 years agoglu: Fix some compiler warnings in libtess
Neil Roberts [Wed, 30 Jun 2010 11:41:11 +0000 (12:41 +0100)]
glu: Fix some compiler warnings in libtess

When compiled with the more aggressive compiler warnings such as
-Wshadow and -Wempty-body the libtess code gives a lot more
warnings. This fixes the following issues:

* The 'Swap' macro tries to combine multiple statements into one and
  then consume the trailing semicolon by using if(1){/*...*/}else.
  This gives warnings because the else part ends up with an empty
  statement. It also seems a bit dangerous because if the semicolon
  were missed then it would still be valid syntax but it would just
  ignore the following statement. This patch replaces it with the more
  common idiom do { /*...*/ } while(0).

* 'free' was being used as a local variable name but this shadows the
  global function. This has been renamed to 'free_handle'

* TRUE and FALSE were being unconditionally defined. Although this
  isn't currently a problem it seems better to guard them with #ifndef
  because it's quite common for them to be defined in other headers.

https://bugs.freedesktop.org/show_bug.cgi?id=28845

Signed-off-by: Brian Paul <brianp@vmware.com>
14 years agoegl: Update MaxSize when a dynamic array is grown.
Chia-I Wu [Wed, 30 Jun 2010 10:49:36 +0000 (18:49 +0800)]
egl: Update MaxSize when a dynamic array is grown.

14 years agoegl: Make _eglUnloadDrivers no-op on Windows.
Chia-I Wu [Wed, 30 Jun 2010 10:27:22 +0000 (18:27 +0800)]
egl: Make _eglUnloadDrivers no-op on Windows.

Windows unloads DLLs before atexit.  Make _eglUnloadDrivers no-op on
Windows for now.

14 years agost/egl: Manually free configs on terminate.
Chia-I Wu [Wed, 30 Jun 2010 10:21:09 +0000 (18:21 +0800)]
st/egl: Manually free configs on terminate.

The configs should be FREE()ed, not free()ed.  We cannot rely on
_eglCleanupDisplay here.

14 years agoegl: Store screens in a dynamic array.
Chia-I Wu [Wed, 30 Jun 2010 10:02:23 +0000 (18:02 +0800)]
egl: Store screens in a dynamic array.

14 years agoegl: Store configs in a dynamic array.
Chia-I Wu [Wed, 30 Jun 2010 09:10:10 +0000 (17:10 +0800)]
egl: Store configs in a dynamic array.

14 years agoegl: Add dynamic array.
Chia-I Wu [Wed, 30 Jun 2010 08:08:52 +0000 (16:08 +0800)]
egl: Add dynamic array.

Dynamic arrays will be used to store configs and screens of a display.

14 years agost/vega: Match MALLOC/FREE for vg_shader.
Chia-I Wu [Wed, 30 Jun 2010 06:42:00 +0000 (14:42 +0800)]
st/vega: Match MALLOC/FREE for vg_shader.

A vg_shader is destroyed with FREE.

14 years agollvmpipe: Add a new scene state to describe scenes which only have state changes.
José Fonseca [Wed, 30 Jun 2010 10:10:33 +0000 (11:10 +0100)]
llvmpipe: Add a new scene state to describe scenes which only have state changes.

It's a rare condition, but it may happen if all primitives are
clipped/culled.

For now we just do a no-op rasterization, but we could bypass it.

14 years agollvmpipe: Don't reset the bin when there's a zsbuf bound.
José Fonseca [Thu, 24 Jun 2010 19:57:21 +0000 (20:57 +0100)]
llvmpipe: Don't reset the bin when there's a zsbuf bound.

The previous rendering may have secondary effects on the zsbuf.

Fixes the missing tiles on gearbox.

14 years agost/vega: s/free/FREE for matching MALLOC/CALLOC
nobled [Wed, 30 Jun 2010 06:24:13 +0000 (14:24 +0800)]
st/vega: s/free/FREE for matching MALLOC/CALLOC

[Manually fix a conflict in vg_context.c by Chia-I Wu]

14 years agost/xorg: s/free/FREE for matching MALLOC/CALLOC
nobled [Thu, 24 Jun 2010 01:32:41 +0000 (21:32 -0400)]
st/xorg: s/free/FREE for matching MALLOC/CALLOC

14 years agost/egl: Add egl-gdi target.
Chia-I Wu [Wed, 30 Jun 2010 05:15:18 +0000 (13:15 +0800)]
st/egl: Add egl-gdi target.

The target supports OpenVG on Windows with software rasterizer.  The
egl_g3d_loader defined by the target supports arbitrary client APIs and
window systems.  It is the SConscript that limits the support to OpenVG
and GDI.

This commit also fixes a typo in gdi backend.

14 years agomesa: Use fpclassify for GL_OES_query_matrix on OpenBSD and NetBSD.
Chia-I Wu [Wed, 30 Jun 2010 04:58:36 +0000 (12:58 +0800)]
mesa: Use fpclassify for GL_OES_query_matrix on OpenBSD and NetBSD.

Patch from Brad Smith <brad@comstyle.com>

  The attached patch allows the GL_OES_query_matrix function to use the
  systems fpclassify() for OpenBSD and NetBSD.

14 years agomesa: make the arguments in the asm statemants optional
Zack Rusin [Wed, 30 Jun 2010 01:45:41 +0000 (21:45 -0400)]
mesa: make the arguments in the asm statemants optional

geometry shaders emit/end functions don't take any arguments

14 years agor300g: add workaround for multiple contexts
Marek Olšák [Tue, 29 Jun 2010 22:02:27 +0000 (00:02 +0200)]
r300g: add workaround for multiple contexts

14 years agor300g: move one flush from winsys to the context
Marek Olšák [Tue, 29 Jun 2010 21:34:36 +0000 (23:34 +0200)]
r300g: move one flush from winsys to the context

This flush happens when changing the tiling flags, and it should really be
done in the context.

I hope this fixes FDO bug #28630.

14 years agollvmpipe: don't crash/assert on out of memory
Brian Paul [Tue, 29 Jun 2010 21:40:15 +0000 (15:40 -0600)]
llvmpipe: don't crash/assert on out of memory

Check for null pointers and return early, etc.

14 years agollvmpipe: restore call to lp_setup_update_state()
Brian Paul [Tue, 29 Jun 2010 21:18:58 +0000 (15:18 -0600)]
llvmpipe: restore call to lp_setup_update_state()

This undoes part of commit 8be645d53a0d5d0ca50e4e9597043225e2231b6d
and fixes fd.o bug 28822 as well as other regressions.

The 'draw' module may issue additional state-change commands while
we're inside the draw_arrays/elements() call so it's important to
check for updated state at this point.

14 years agoegl: Check for drm winsys not just the driver name
Jakob Bornecrantz [Tue, 29 Jun 2010 17:21:00 +0000 (18:21 +0100)]
egl: Check for drm winsys not just the driver name

Also fix pipe_radeon.so not building

14 years agodraw: Add inline keyword to inline function.
José Fonseca [Tue, 29 Jun 2010 13:30:44 +0000 (14:30 +0100)]
draw: Add inline keyword to inline function.

Otherwise gcc will warn about unusued functions.

14 years agoi915g: Fix copy pasto
Jakob Bornecrantz [Tue, 29 Jun 2010 11:36:40 +0000 (12:36 +0100)]
i915g: Fix copy pasto

14 years agoegl: Fix gallium build when EGL is not installed on system
Jakob Bornecrantz [Tue, 29 Jun 2010 11:28:41 +0000 (12:28 +0100)]
egl: Fix gallium build when EGL is not installed on system

14 years agoi915g: Add missing egl pipe file
Jakob Bornecrantz [Tue, 29 Jun 2010 11:28:15 +0000 (12:28 +0100)]
i915g: Add missing egl pipe file

14 years agoegl: Remove st/egl probe code.
Chia-I Wu [Thu, 24 Jun 2010 16:41:56 +0000 (00:41 +0800)]
egl: Remove st/egl probe code.

It is no longer needed.

14 years agoegl: Do not call drv->Initialize with global mutex locked.
Chia-I Wu [Thu, 24 Jun 2010 08:49:40 +0000 (16:49 +0800)]
egl: Do not call drv->Initialize with global mutex locked.

14 years agost/egl: Build a single EGL driver.
Chia-I Wu [Wed, 23 Jun 2010 13:36:20 +0000 (21:36 +0800)]
st/egl: Build a single EGL driver.

This change makes st/egl build a single egl_gallium.so and multiple
st_<API>.so and pipe_<HW>.so.  When a display is initialized, the
corresponding pipe driver will be loaded.  When a context is created,
the corresponding state tracker will be loaded.

Unlike DRI drivers, no ABI compatibility is maintained.  egl_gallium,
pipe drivers and state trackers should always be distributed as a single
package.  As such, there is only a single src/gallium/targets/egl/ that
builds everything for the package.

14 years agost/egl: Move module loading code to targets.
Chia-I Wu [Tue, 29 Jun 2010 06:58:33 +0000 (14:58 +0800)]
st/egl: Move module loading code to targets.

Several changes are made.  libegl.a no longer defines _eglMain.  It
defines functions to create and destroy a _EGLDriver instead.  The
creation function is called by the targets.  It takes an egl_g3d_loader
as its argument.  The loader is defined by the targets and is in charge
of creating st_api and pipe_screen.  This allows us to move the module
loading code to targets.  Lastly, the modules are now loaded as the
respective contexts are created.

14 years agost/egl: Reorganize targets.
Chia-I Wu [Tue, 29 Jun 2010 06:04:27 +0000 (14:04 +0800)]
st/egl: Reorganize targets.

Merge all targets into targets/egl/.  The target produces
egl_gallium_<HW>.so for each pipe driver and st_<API>.so for each client
APIs.  This enables us to further merge egl_gallium_<HW>.so into
egl_gallium.so later.

14 years agost/egl: One driver per hardware.
Chia-I Wu [Thu, 17 Jun 2010 15:45:41 +0000 (23:45 +0800)]
st/egl: One driver per hardware.

Merge multiple egl_<platform>_<pipe>.so into a single
egl_gallium_<pipe>.so.  The environment variable EGL_PLATFORM is now
used to modify the return value of _eglGetNativePlatform.

14 years agost/egl: Introduce native_platform.
Chia-I Wu [Thu, 17 Jun 2010 15:21:43 +0000 (23:21 +0800)]
st/egl: Introduce native_platform.

Move native_get_name, native_create_probe, native_get_probe_result, and
native_create_display into struct native_platform, and add
native_get_platform to get a handle to the struct.

14 years agost/egl: Make api_OpenGL support OpenGL ES.
Chia-I Wu [Wed, 23 Jun 2010 09:45:06 +0000 (17:45 +0800)]
st/egl: Make api_OpenGL support OpenGL ES.

This allows api_OpenGL.so to support OpenGL ES.

14 years agost/mesa: Add support for multiple APIs.
Chia-I Wu [Wed, 23 Jun 2010 09:40:49 +0000 (17:40 +0800)]
st/mesa: Add support for multiple APIs.

Add st_gl_api_create_es1 and st_gl_api_create_es2 to create OpeGL ES 1.1
and OpenGL ES 2.0 contexts respectively.

14 years agost_api: Remove st_context::is_visual_supported.
Chia-I Wu [Wed, 23 Jun 2010 08:14:49 +0000 (16:14 +0800)]
st_api: Remove st_context::is_visual_supported.

The callback is used by st/vega to check if a visual specifies the
depth/stencil format.  It forces st/vega to be loaded by st/egl to
perform the check.  As noted in EGL spec, the depth/stencil format of a
visual should not affect OpenVG.  It should be better to ignore the
field and always allocate the depth/stencil texture.

14 years agomesa: initial support for ARB_geometry_shader4
Zack Rusin [Mon, 28 Jun 2010 21:31:21 +0000 (17:31 -0400)]
mesa: initial support for ARB_geometry_shader4

laying down the foundation for everything and implementing most of the
stuff.
linking, gl_VerticesIn and multidimensional inputs are left.

14 years agoutil: reference surfaces and sampler views in blitter when saving them
Marek Olšák [Mon, 28 Jun 2010 23:52:09 +0000 (01:52 +0200)]
util: reference surfaces and sampler views in blitter when saving them

Ooops. This should possibly fix some bugs...

14 years agoi915g: Add Galahad to targets
Jakob Bornecrantz [Mon, 28 Jun 2010 20:33:39 +0000 (22:33 +0200)]
i915g: Add Galahad to targets

14 years agor300g: Galahad for scons as well
Jakob Bornecrantz [Mon, 28 Jun 2010 20:27:51 +0000 (22:27 +0200)]
r300g: Galahad for scons as well

14 years agor300g: Add target defines for Galahad
Jakob Bornecrantz [Mon, 28 Jun 2010 19:54:38 +0000 (21:54 +0200)]
r300g: Add target defines for Galahad

14 years agoglhd: Build with scons
Jakob Bornecrantz [Mon, 28 Jun 2010 20:22:53 +0000 (22:22 +0200)]
glhd: Build with scons

14 years agoglhd: Re-integrate with the debug system
Jakob Bornecrantz [Mon, 28 Jun 2010 19:50:51 +0000 (21:50 +0200)]
glhd: Re-integrate with the debug system

14 years agoglhd: Remove leftover file
Jakob Bornecrantz [Mon, 28 Jun 2010 19:37:03 +0000 (21:37 +0200)]
glhd: Remove leftover file

14 years agoMerge branch 'gallium-drm-driver-drescriptor'
Jakob Bornecrantz [Mon, 28 Jun 2010 18:59:09 +0000 (20:59 +0200)]
Merge branch 'gallium-drm-driver-drescriptor'

Conflicts:
src/gallium/state_trackers/egl/x11/native_dri2.c
src/gallium/state_trackers/egl/x11/native_x11.c
src/gallium/state_trackers/egl/x11/native_x11.h
src/gallium/state_trackers/xorg/xorg_driver.c
src/gallium/winsys/radeon/drm/radeon_drm.c

14 years agollvmpipe: set WRITE_ALL only a per-tile basis in lp_resource_copy().
José Fonseca [Mon, 28 Jun 2010 15:33:52 +0000 (16:33 +0100)]
llvmpipe: set WRITE_ALL only a per-tile basis in lp_resource_copy().

14 years agollvmpipe: Actually flush in lp_resource_copy()
José Fonseca [Mon, 28 Jun 2010 14:39:54 +0000 (15:39 +0100)]
llvmpipe: Actually flush in lp_resource_copy()

The cpu_access is redundant in a software rasterizer.

14 years agollvmpipe: Ensure outdated framebuffer state is not reused in lp_setup_bind_framebuffer().
José Fonseca [Mon, 28 Jun 2010 15:28:55 +0000 (16:28 +0100)]
llvmpipe: Ensure outdated framebuffer state is not reused in lp_setup_bind_framebuffer().

We were starting a scene whenever lp_setup_get_vertex_info() was called by
the draw module. So when when all primitives were culled/clipped, not only
did we create a new scene for nothing, but we end up using the old scene
with the old framebuffer state instead of a new one.

Fix consists in:
- don't call lp_setup_update_state() in lp_setup_get_vertex_info() -- no
  longer necessary
- always setting the scene state before binning a command -- query
  commands were bypassing it
- assert no old scene is reused in lp_setup_bind_framebuffer()

14 years agor300g: fix a compile error on non-debug builds
Marek Olšák [Sun, 27 Jun 2010 15:15:23 +0000 (17:15 +0200)]
r300g: fix a compile error on non-debug builds

14 years agoutil: fix a memory leak in blitter
Marek Olšák [Sun, 27 Jun 2010 13:02:08 +0000 (15:02 +0200)]
util: fix a memory leak in blitter

14 years agor300g: separate the hyperz state and pipelined FB regs out of the FB state
Marek Olšák [Sun, 27 Jun 2010 11:55:59 +0000 (13:55 +0200)]
r300g: separate the hyperz state and pipelined FB regs out of the FB state

14 years agor300g: release referenced objects in destroy_context
Marek Olšák [Sat, 26 Jun 2010 23:07:34 +0000 (01:07 +0200)]
r300g: release referenced objects in destroy_context

14 years agor300g: reference surfaces in set_framebuffer_state
Marek Olšák [Sat, 26 Jun 2010 22:39:27 +0000 (00:39 +0200)]
r300g: reference surfaces in set_framebuffer_state

14 years agor300g: group debug messages
Marek Olšák [Sat, 26 Jun 2010 17:09:19 +0000 (19:09 +0200)]
r300g: group debug messages

14 years agor300g: turn rasterizer state into a command buffer
Marek Olšák [Fri, 25 Jun 2010 02:48:02 +0000 (04:48 +0200)]
r300g: turn rasterizer state into a command buffer

14 years agor300g: move emission of the MSPOS regs into the framebuffer state
Marek Olšák [Fri, 25 Jun 2010 01:28:09 +0000 (03:28 +0200)]
r300g: move emission of the MSPOS regs into the framebuffer state

Now the question is whether we are allowed to ignore gl_rasterization_rules and
pipe_rasterizer_state::multisample. The former is invariant anyway and
I think the latter would need re-emitting the AA state which is quite costly,
considering that it implicitly flushes the whole pipeline (all AA regs
in the AA state are *unpipelined*).

14 years agor300g: turn invariant state into a command buffer
Marek Olšák [Fri, 25 Jun 2010 00:55:14 +0000 (02:55 +0200)]
r300g: turn invariant state into a command buffer