mesa.git
12 years agosoftpipe: use the polygon stipple utility module
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
softpipe: use the polygon stipple utility module

This is an alternative to the draw module's polygon stipple stage.
The softpipe implementation here is just a test.  The advantange of
using the new polygon stipple utility module (with other drivers)
is we can avoid software vertex processing in the draw module and
get much better performance.
Polygon stipple doesn't require special vertex processing like
the other draw module stage.

12 years agosoftpipe: implement fragment shader variants
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
softpipe: implement fragment shader variants

We'll need shader variants to accomodate the new polygon stipple utility.

12 years agoutil: assorted updates to polygon stipple helper
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
util: assorted updates to polygon stipple helper

12 years agosoftpipe: use tgsi_shader_info fields for fragcoord origin, center, etc.
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
softpipe: use tgsi_shader_info fields for fragcoord origin, center, etc.

12 years agotgsi: add info fields for fragcoord origin, center, etc
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
tgsi: add info fields for fragcoord origin, center, etc

12 years agosoftpipe: remove obsolete comment
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
softpipe: remove obsolete comment

12 years agosoftpipe: rename a function
Brian Paul [Thu, 21 Jul 2011 15:55:22 +0000 (09:55 -0600)]
softpipe: rename a function

12 years agost/mesa: more helpful debug message in destroy_program_variants_cb()
Brian Paul [Wed, 8 Jun 2011 21:15:07 +0000 (15:15 -0600)]
st/mesa: more helpful debug message in destroy_program_variants_cb()

12 years agosvga: fix typos, update comments
Brian Paul [Wed, 8 Jun 2011 21:07:15 +0000 (15:07 -0600)]
svga: fix typos, update comments

12 years agoglx: Remove some GLX_USE_APPLEGL guards around glapi
Jeremy Huddleston [Wed, 8 Jun 2011 19:03:10 +0000 (12:03 -0700)]
glx: Remove some GLX_USE_APPLEGL guards around glapi

Now that we're using glapi, we don't need some GLX_USE_APPLEGL ifdef-foo

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agodarwin: Use -fvisibility=hidden to set default symbol visibility
Jeremy Huddleston [Wed, 8 Jun 2011 18:47:00 +0000 (11:47 -0700)]
darwin: Use -fvisibility=hidden to set default symbol visibility

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agodarwin: mklib: Make the real file match the id
Jeremy Huddleston [Wed, 8 Jun 2011 18:20:38 +0000 (11:20 -0700)]
darwin: mklib: Make the real file match the id

This makes mesa more consistent with glibtool and XCode where the
generated file matches the dylib id rather using an extra symlink

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agointel: Request DRI2 buffers for separate stencil and hiz
Chad Versace [Fri, 3 Jun 2011 23:33:32 +0000 (16:33 -0700)]
intel: Request DRI2 buffers for separate stencil and hiz

When it is sensible to do so,
    1) intelCreateBuffer() now attaches separate depth and stencil
       buffers
       to the framebuffer it creates.
    2) intel_update_renderbuffers() requests for the framebuffer
       a separate stencil buffer (DRI2BufferStencil).

The criteria for "sensible" is:
    - The GLX config has nonzero depth and stencil bits.
    - The hardware supports separate stencil.
    - The X driver supports separate stencil, or its support has not yet
      been determined.

If the hardware supports hiz too, then intel_update_renderbuffers()
also requests DRI2BufferHiz.

If after requesting DRI2BufferStencil we determine that X driver did not
actually support separate stencil, we clean up the mistake and never ask
for DRI2BufferStencil again.

CC: Ian Romanick <idr@freedesktop.org>
CC: Kristian Høgsberg <krh@bitplanet.net>
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
12 years agointel: Add assertions to intelCreateBuffer()
Chad Versace [Thu, 26 May 2011 21:55:54 +0000 (14:55 -0700)]
intel: Add assertions to intelCreateBuffer()

Assert that the GLX config has an expected depth/stencil bit combination:
one of d24/s8, d16/s0, d0/s0. These are the only depth/stencil
configurations that we advertise.

Remove the check for software stencil, because given the assertions'
constraints the check always fails.

CC: Ian Romanick <idr@freedesktop.org>
CC: Kristian Høgsberg <krh@bitplanet.net>
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
12 years agointel: Refactor intel_update_renderbuffers()
Chad Versace [Fri, 3 Jun 2011 23:14:25 +0000 (16:14 -0700)]
intel: Refactor intel_update_renderbuffers()

Extract the code that queries DRI2 to obtain the DRIdrawable's buffers
into intel_query_dri2_buffers_no_separate_stencil().

Extract the code that assigns the DRI buffer's DRM region to the
corresponding renderbuffer into
intel_process_dri2_buffer_no_separate_stencil().

Rationale
---------
The next commit enables intel_update_renderbuffers() to query for separate
stencil and hiz buffers. Without separating the separate-stencil and
no-separate-stencil paths, intel_update_renderbuffers() degenerates into
an impenetrable labyrinth of if-trees.

CC: Ian Romanick <idr@freedesktop.org>
CC: Kristian Høgsberg <krh@bitplanet.net>
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
12 years agointel: Add function intel_renderbuffer_set_hiz_region()
Chad Versace [Tue, 31 May 2011 21:18:22 +0000 (14:18 -0700)]
intel: Add function intel_renderbuffer_set_hiz_region()

It's the analog of intel_renderbuffer_set_region(), but for the hiz region
of course.

CC: Ian Romanick <idr@freedesktop.org>
CC: Kristian Høgsberg <krh@bitplanet.net>
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
12 years agointel/intel_context.c: Remove unused functions
Chad Versace [Wed, 1 Jun 2011 22:14:18 +0000 (15:14 -0700)]
intel/intel_context.c: Remove unused functions

Remove functions intel_override_hiz() and
intel_override_separate_stencil(). They are now located in intel_screen.c.

CC: Ian Romanick <idr@freedesktop.org>
CC: Kristian Høgsberg <krh@bitplanet.net>
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
12 years agointel: Add flags to intel_screen for hiz and separate stencil
Chad Versace [Thu, 26 May 2011 22:24:48 +0000 (15:24 -0700)]
intel: Add flags to intel_screen for hiz and separate stencil

Add the fields below to intel_screen. The expression in parens is the
value to which intelInitScreen2() currently sets the field.
    GLboolean hw_has_separate_stencil      (true iff gen >= 7)
    GLboolean hw_must_use_separate_stencil (true iff gen >= 7)
    GLboolean hw_has_hiz                   (always false)
    enum intel_dri2_has_hiz dri2_has_hiz   (INTEL_DRI2_HAS_HIZ_UNKNOWN)

The analogous fields in intel_context now inherit their values from
intel_screen.

When hiz and separate stencil become completely implemented for a given
chipset, then the respective fields need to be enabled.

CC: Ian Romanick <idr@freedesktop.org>
CC: Kristian Høgsberg <krh@bitplanet.net>
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
12 years agointel: Define enum intel_dri2_has_hiz
Chad Versace [Wed, 1 Jun 2011 21:19:29 +0000 (14:19 -0700)]
intel: Define enum intel_dri2_has_hiz

... which indicates if the X driver supports DRI2BufferHiz and
DRI2BufferStencil.

I'm placing this in its own commit due to the large comment block.

CC: Ian Romanick <idr@freedesktop.org>
CC: Kristian Høgsberg <krh@bitplanet.net>
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
12 years agodri2: Add token for DRI2BufferHiz
Chad Versace [Thu, 26 May 2011 23:50:30 +0000 (16:50 -0700)]
dri2: Add token for DRI2BufferHiz

CC: Ian Romanick <idr@freedesktop.org>
CC: Kristian Høgsberg <krh@bitplanet.net>
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
12 years agointel: Define span functions for S8 renderbuffers
Chad Versace [Wed, 1 Jun 2011 18:31:56 +0000 (11:31 -0700)]
intel: Define span functions for S8 renderbuffers

Since the stencil buffer is interleaved, the generic Mesa renderbuffer
accessors do not suffice. Custom span functions are necessary.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad@chad-versace.us>
12 years agoi965/brw: Emit state for hiz and separate stencil buffers
Chad Versace [Mon, 23 May 2011 20:48:28 +0000 (13:48 -0700)]
i965/brw: Emit state for hiz and separate stencil buffers

When emitting 3DSTATE_DEPTH_BUFFER, also emit 3DSTATE_HIER_DEPTH_BUFFER if
there is a hiz buffer. Ditto for 3DSTATE_STENCIL_BUFFER and a separate
stencil buffer.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
12 years agost/egl: set EGL_ALPHA_MASK_SIZE
Chia-I Wu [Wed, 8 Jun 2011 16:23:16 +0000 (00:23 +0800)]
st/egl: set EGL_ALPHA_MASK_SIZE

12 years agomesa: merge glapidispatch.h into dispatch.h
Chia-I Wu [Wed, 8 Jun 2011 14:24:32 +0000 (22:24 +0800)]
mesa: merge glapidispatch.h into dispatch.h

glapidispatch.h was located in glapi and shared with mesa core.  Because
the way it was shared, mesa core must include it indirectly via
main/dispatch.h.

Now that it is no longer needed by glapi and is located in core mesa,
merging it with main/dispatch.h to avoid wrong uses.

12 years agomesa: fix function remapping for dlist
Chia-I Wu [Wed, 8 Jun 2011 13:51:41 +0000 (21:51 +0800)]
mesa: fix function remapping for dlist

glapidispatch.h should not be included directly.

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

12 years agomesa: fix GLES remap table setup again
Chia-I Wu [Wed, 8 Jun 2011 14:04:16 +0000 (22:04 +0800)]
mesa: fix GLES remap table setup again

Generate different glapidispatch.h's for GL and GLES.  For GLES, we want
a local remap table.

This reverts commit 5af46e836073d2112b147b524e441bdb808cc128.  The
commit will break GL remap table setup when main/glapidispatch.h is
regenerated.

12 years agor600g: fix mixup in GPR resource reg setup
Alex Deucher [Wed, 8 Jun 2011 14:50:18 +0000 (10:50 -0400)]
r600g: fix mixup in GPR resource reg setup

GLOBAL_GPR regs should be 0.  Need to set the
number of temp regs in SQ_GPR_RESOURCE_MGMT_1.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
12 years agovbo: run 'indent' on vbo_save_api.c
Brian Paul [Wed, 8 Jun 2011 14:05:41 +0000 (08:05 -0600)]
vbo: run 'indent' on vbo_save_api.c

12 years agomesa: add include/c99/*.h files to tarballs
Brian Paul [Wed, 8 Jun 2011 14:05:41 +0000 (08:05 -0600)]
mesa: add include/c99/*.h files to tarballs

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

NOTE: This is a candidate for the 7.10 branch.

12 years agovbo: rename DO_FALLBACK -> dlist_fallback
Brian Paul [Wed, 8 Jun 2011 14:05:41 +0000 (08:05 -0600)]
vbo: rename DO_FALLBACK -> dlist_fallback

12 years agovbo: remove node->count > 0 test in vbo_save_playback_vertex_list()
Brian Paul [Wed, 8 Jun 2011 14:05:41 +0000 (08:05 -0600)]
vbo: remove node->count > 0 test in vbo_save_playback_vertex_list()

See piglit dlist-fdo31590.c test and
http://bugs.freedesktop.org/show_bug.cgi?id=31590

In this case we had node->prim_count=1 but node->count==0 because the
display list started with glBegin() but had no vertices.  The call to
glEvalCoord1f() triggered the DO_FALLBACK() path.  When replaying the
display list, the old condition basically no-op'd the call to
vbo_save_playback_vertex_list call().  That led to the invalid operation
error being raised in glEnd().

NOTE: This is a candidate for the 7.10 branch.

12 years agovbo: check array indexes to prevent negative indexing
Brian Paul [Wed, 8 Jun 2011 14:05:41 +0000 (08:05 -0600)]
vbo: check array indexes to prevent negative indexing

See the piglit dlist-fdo31590.c test

NOTE: This is a candidate for the 7.10 branch.

12 years agost: use _mesa_is_bufferobj()
Brian Paul [Wed, 8 Jun 2011 14:05:41 +0000 (08:05 -0600)]
st: use _mesa_is_bufferobj()

12 years agovbo: added a comment
Brian Paul [Wed, 8 Jun 2011 14:05:41 +0000 (08:05 -0600)]
vbo: added a comment

12 years agogallium: fix comments for pipe_stream_output_state
Brian Paul [Wed, 8 Jun 2011 14:05:40 +0000 (08:05 -0600)]
gallium: fix comments for pipe_stream_output_state

12 years agomesa: remove old comment
Brian Paul [Wed, 8 Jun 2011 14:05:40 +0000 (08:05 -0600)]
mesa: remove old comment

12 years agomesa: add more sampler types to is_sampler_type()
Brian Paul [Wed, 8 Jun 2011 14:05:40 +0000 (08:05 -0600)]
mesa: add more sampler types to is_sampler_type()

12 years agogallium: s/bool/boolean/
Brian Paul [Wed, 8 Jun 2011 14:05:40 +0000 (08:05 -0600)]
gallium: s/bool/boolean/

12 years agodraw: fix edge flag handling in clipper (for unfilled tris/quads/polygons)
Brian Paul [Wed, 8 Jun 2011 14:05:40 +0000 (08:05 -0600)]
draw: fix edge flag handling in clipper (for unfilled tris/quads/polygons)

Previously, we were errantly drawing some interior edges of clipped
polygons and quads.  Also, we were introducing extra edges where
polygons intersected the view frustum clip planes.

The main problem was that we were ignoring the edgeflags encoded in
the primitive header's 'flags' field which are set during polygon/quad
->tri decomposition.  We need to observe those during clipping.  Since
we can't modify the existing vert's edgeflag fields, we need to store
them in a parallel array.

Edge flags also need to be handled differently for view frustum planes
vs. user-defined clip planes.  In the former case we don't want to draw
new clip edges but in the later case we do.  This matches NVIDIA's
behaviour and it just looks right.

Finally, note that the LLVM draw code does not properly set vertex
edge flags.  It's OK on the regular software path though.

12 years agoosmesa: Fix missing symbols when GLX_INDIRECT_RENDERING is defined.
Jeremy Huddleston [Tue, 7 Jun 2011 04:51:18 +0000 (00:51 -0400)]
osmesa: Fix missing symbols when GLX_INDIRECT_RENDERING is defined.

When GLX_INDIRECT_RENDERING is defined, some symbols are used in
libglapi.a but are not defined.  Define them through the help of
glapitemp.h.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
12 years agoapple: Update dispatch table to current OpenGL specs
Jeremy Huddleston [Wed, 8 Jun 2011 04:21:47 +0000 (21:21 -0700)]
apple: Update dispatch table to current OpenGL specs

This updates the apple dispatch table to match the current glapi.
Aliases are still not handled very well.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agoapple: Dead code removal
Jeremy Huddleston [Wed, 8 Jun 2011 02:35:09 +0000 (19:35 -0700)]
apple: Dead code removal

Now that we're using glapi, all of this is no longer needed.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agoapple: Remove apple_glx_get_proc_address
Jeremy Huddleston [Wed, 8 Jun 2011 02:26:53 +0000 (19:26 -0700)]
apple: Remove apple_glx_get_proc_address

Now that we're using glapi, we don't need to special case this.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agoapple: Use glapi rather than reinventing the wheel
Jeremy Huddleston [Wed, 8 Jun 2011 01:51:17 +0000 (18:51 -0700)]
apple: Use glapi rather than reinventing the wheel

With this change, Apple's libGL is now using glapi rather than implementing
its own dispatch.  In this implementation, two dispatch tables are created:

__ogl_framework_api always points into OpenGL.framework.
__applegl_api is the vtable that is used.  It points into OpenGL.framework
or to local implementations that override / interpose this in OpenGL.framework

The initialization for __ogl_framework_api was copied from XQuartz with some
modifications and probably still needs further edits to better deal with
aliases.

This is a good step towards supporting both indirect and direct rendering
on darwin.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agoapple: Rename __gl_api to __ogl_framework_api
Jeremy Huddleston [Wed, 8 Jun 2011 01:00:23 +0000 (21:00 -0400)]
apple: Rename __gl_api to __ogl_framework_api

In starting the migration to using mapi, rename __gl_api to
__ogl_framework_api since it is a vtable for OpenGL.framework

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agor600g: missed one line in eg dyn gpr fallback.
Dave Airlie [Wed, 8 Jun 2011 04:52:30 +0000 (14:52 +1000)]
r600g: missed one line in eg dyn gpr fallback.

need more sleep or something.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: set enable always bits for r600/r700 sq registers.
Dave Airlie [Wed, 8 Jun 2011 04:25:02 +0000 (14:25 +1000)]
r600g: set enable always bits for r600/r700 sq registers.

This makes sure these are enabled even if set to 0 at startup.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: condition evergreen dyn gpr resource management
Dave Airlie [Wed, 8 Jun 2011 04:45:31 +0000 (14:45 +1000)]
r600g: condition evergreen dyn gpr resource management

So only with kernel version 2.7 can this work, thanks to Alex
for pointing that out. Also add a workaround for a hw bug.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: fix warnings in winsys.
Dave Airlie [Wed, 8 Jun 2011 04:10:49 +0000 (14:10 +1000)]
r600g: fix warnings in winsys.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: enable dynamic GPR resource management on evergreen
Dave Airlie [Wed, 8 Jun 2011 04:09:59 +0000 (14:09 +1000)]
r600g: enable dynamic GPR resource management on evergreen

Evergreen can do this as well as cayman, so we should enable it.

This fixes a gpu lockup with
glsl-vs-vec4-indexing-temp-dst-in-nested-loop-combined.shader_test

I need to add a better workaround for r600/r700.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: only add blocks once to the dirty/enabled lists.
Dave Airlie [Wed, 8 Jun 2011 04:02:00 +0000 (14:02 +1000)]
r600g: only add blocks once to the dirty/enabled lists.

This caused a loop in some tests.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: fix regression in recent state changes.
Dave Airlie [Wed, 8 Jun 2011 03:20:17 +0000 (13:20 +1000)]
r600g: fix regression in recent state changes.

We weren't emitting the SQ setup regs at all which really is
fail.

When a state is always enabled we need to add it to the dirty list
as well.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: move simple part of bo reloc processing inline.
Dave Airlie [Tue, 7 Jun 2011 05:40:20 +0000 (15:40 +1000)]
r600g: move simple part of bo reloc processing inline.

This just moves the messy stuff out of the fast path,
and leaves the fast-case in the fast path.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: take alpha ref update out of line.
Dave Airlie [Tue, 7 Jun 2011 05:39:29 +0000 (15:39 +1000)]
r600g: take alpha ref update out of line.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: split resource emit path from main register emit path
Dave Airlie [Tue, 7 Jun 2011 03:21:02 +0000 (13:21 +1000)]
r600g: split resource emit path from main register emit path

Since resources don't generally vary in size, this splits
the emit path, it also takes into a/c that texture and vertex resources
have different number of relocs, and avoids emitting the extra
reloc for vertex resources.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: exit bo per reg scanning loop early.
Dave Airlie [Tue, 7 Jun 2011 02:33:24 +0000 (12:33 +1000)]
r600g: exit bo per reg scanning loop early.

Exit this loop early to avoid pointless iterations later.

Move the resource bos to the first two regs, it actually
doesn't matter which regs we use for this in resource land.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: reorder evergreen draw packets to be smaller.
Dave Airlie [Tue, 7 Jun 2011 01:30:47 +0000 (11:30 +1000)]
r600g: reorder evergreen draw packets to be smaller.

We were always re-emitting lots of unnecessary changes here,
avoid doing that.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: inline r600_bo_reference.
Dave Airlie [Tue, 7 Jun 2011 01:03:59 +0000 (11:03 +1000)]
r600g: inline r600_bo_reference.

This relies on the reference member being first, so document it.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: no need to drop the references here.
Dave Airlie [Tue, 7 Jun 2011 00:49:50 +0000 (10:49 +1000)]
r600g: no need to drop the references here.

We drop them when we reference the new objects in the next line.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: use memcmp instead of a loop in state_set_resource
Dave Airlie [Tue, 7 Jun 2011 00:38:46 +0000 (10:38 +1000)]
r600g: use memcmp instead of a loop in state_set_resource

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agomesa: Ignore blits to/from missing buffers
Ian Romanick [Tue, 7 Jun 2011 19:38:39 +0000 (12:38 -0700)]
mesa: Ignore blits to/from missing buffers

The EXT_framebuffer_object spec (and later specs) say:

     "If a buffer is specified in <mask> and does not exist in both
     the read and draw framebuffers, the corresponding bit is silently
     ignored."

Check for color, depth, and stencil that the source and destination
FBOs have the specified buffers.  If the buffer is missing, remove the
bit from the blit request mask and continue.

Fixes the crash in piglit test 'fbo-missing-attachment-blit from', and
fixes 'fbo-missing-attachment-blit es2 from'.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=37739
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
NOTE: This is a candidate for the stable branches.

12 years agomesa: Don't try to clear a NULL renderbuffer
Ian Romanick [Tue, 7 Jun 2011 19:27:04 +0000 (12:27 -0700)]
mesa: Don't try to clear a NULL renderbuffer

In an ES2 context (or if GL_ARB_ES2_compatibility) is supported, the
framebuffer can be complete with some attachments be missing.  In this
case the _ColorDrawBuffers pointer will be NULL.

Fixes the crash in piglit test fbo-missing-attachment-clear.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=37739
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
NOTE: This is a candidate for the stable branches.

12 years agomga: enable GL_ARB_vertex_array_object extension
Nicolas Kaiser [Tue, 7 Jun 2011 21:56:03 +0000 (23:56 +0200)]
mga: enable GL_ARB_vertex_array_object extension

Tested on a Matrox G550 AGP.

Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agoegl_dri2: Add missing header
Benjamin Franzke [Tue, 7 Jun 2011 20:19:21 +0000 (22:19 +0200)]
egl_dri2: Add missing header

12 years agoegl_dri2: Add missing license
Benjamin Franzke [Tue, 7 Jun 2011 20:15:32 +0000 (22:15 +0200)]
egl_dri2: Add missing license

12 years agoegl_dri2: Use libudev only if available
Benjamin Franzke [Tue, 7 Jun 2011 19:59:02 +0000 (21:59 +0200)]
egl_dri2: Use libudev only if available

Broken since 7f881c43dfb4f1aeeab3a84125b5c106c191a43f.

12 years agor600g : fix incorrect size computation in r600_query_result
Pierre-Eric Pelloux-Prayer [Tue, 7 Jun 2011 21:40:37 +0000 (17:40 -0400)]
r600g : fix incorrect size computation in r600_query_result

query->num_results already has the size in dwords of the query
buffer.  There no need to multiply again.  We were reading past
the end of the buffer, resulting in reading garbage.

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

agd5f: clarify the comment.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
12 years agor600g: remove pre-r6xx asic families and pci ids
Alex Deucher [Tue, 7 Jun 2011 20:59:04 +0000 (16:59 -0400)]
r600g: remove pre-r6xx asic families and pci ids

Not sure why these were included originally.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
12 years agor600g: always clear query memory
Alex Deucher [Tue, 7 Jun 2011 20:44:40 +0000 (16:44 -0400)]
r600g: always clear query memory

According to the hw documentation, the driver needs to:
- allocate 128 bits for each possible DB
- clear the 128 bits for each possible DB
- write 1 to bits 127 and 63 for upper DBs that don't
exist on a particular asic

Previously we were only doing these steps if the
asic had less than the max possible DBs.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
12 years agor300g: consolidate deducing chipset info
Marek Olšák [Tue, 7 Jun 2011 18:59:56 +0000 (20:59 +0200)]
r300g: consolidate deducing chipset info

Use the new PCI ID table, make it simpler.

12 years agor300_pci_ids: set families to match r300g
Marek Olšák [Tue, 7 Jun 2011 18:50:32 +0000 (20:50 +0200)]
r300_pci_ids: set families to match r300g

12 years agor600g: add missing r300 families
Marek Olšák [Tue, 7 Jun 2011 18:51:03 +0000 (20:51 +0200)]
r600g: add missing r300 families

Wondering why r600g needs to include r300_pci_ids.h

12 years agointel: Update intel-decode.c from intel-gpu-tools.
Eric Anholt [Mon, 6 Jun 2011 06:05:20 +0000 (23:05 -0700)]
intel: Update intel-decode.c from intel-gpu-tools.

12 years agointel: Implement glFinish() correctly by waiting on all previous rendering.
Eric Anholt [Tue, 31 May 2011 19:32:06 +0000 (12:32 -0700)]
intel: Implement glFinish() correctly by waiting on all previous rendering.

Before, we were waiting for (most of) the current framebuffer to be
done, which is not quite the same thing.

12 years agodarwin: Fix VG_LIB_GLOB to also match the unversioned symlink
Jeremy Huddleston [Tue, 7 Jun 2011 17:07:26 +0000 (13:07 -0400)]
darwin: Fix VG_LIB_GLOB to also match the unversioned symlink

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agodarwin: Don't link against libGL when building libOSMesa
Jeremy Huddleston [Tue, 7 Jun 2011 17:06:44 +0000 (13:06 -0400)]
darwin: Don't link against libGL when building libOSMesa

Everything should be resolved through glapi.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agor300_pci_ids: add missing 4B48
Marek Olšák [Tue, 7 Jun 2011 16:45:23 +0000 (18:45 +0200)]
r300_pci_ids: add missing 4B48

Found in r300_chipset.h.

12 years agor300g: Remove is_r3xx
Benjamin Franzke [Mon, 6 Jun 2011 16:31:12 +0000 (18:31 +0200)]
r300g: Remove is_r3xx

Use r300_pci_ids.h instead.

Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
12 years agor600g: Use radeon pciid list for the family lookup table
Benjamin Franzke [Mon, 6 Jun 2011 11:13:01 +0000 (13:13 +0200)]
r600g: Use radeon pciid list for the family lookup table

Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
12 years agoradeon: Use pciid list to generate PCI_CHIP_<FAMILY>_<ID> defines
Benjamin Franzke [Mon, 6 Jun 2011 11:12:26 +0000 (13:12 +0200)]
radeon: Use pciid list to generate PCI_CHIP_<FAMILY>_<ID> defines

Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
12 years agotargets/egl: Support driver name lookup using pci lists
Benjamin Franzke [Mon, 30 May 2011 07:55:14 +0000 (09:55 +0200)]
targets/egl: Support driver name lookup using pci lists

Make use of this in drm and wayland st/egl backends.

Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
12 years agoegl_dri2: Use external driver pci list
Benjamin Franzke [Mon, 30 May 2011 08:49:55 +0000 (10:49 +0200)]
egl_dri2: Use external driver pci list

Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
12 years agoAdd radeon pci id lists
Benjamin Franzke [Thu, 26 May 2011 12:54:38 +0000 (14:54 +0200)]
Add radeon pci id lists

Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
12 years agoAdd intel pci id lists
Benjamin Franzke [Mon, 30 May 2011 09:58:32 +0000 (11:58 +0200)]
Add intel pci id lists

Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
12 years agotgsi: s/varient/variant/
Brian Paul [Tue, 7 Jun 2011 13:57:04 +0000 (07:57 -0600)]
tgsi: s/varient/variant/

12 years agodraw: rename draw_vs_varient.c to draw_vs_variant.c
Brian Paul [Tue, 7 Jun 2011 13:55:06 +0000 (07:55 -0600)]
draw: rename draw_vs_varient.c to draw_vs_variant.c

12 years agodraw/llvm: whitespace, formatting fixes
Brian Paul [Tue, 7 Jun 2011 13:31:34 +0000 (07:31 -0600)]
draw/llvm: whitespace, formatting fixes

12 years agodraw: s/1/TRUE/
Brian Paul [Mon, 6 Jun 2011 20:33:05 +0000 (14:33 -0600)]
draw: s/1/TRUE/

12 years agoi965: Fix flipped GT1 vs GT2 URB VS entry count limits.
Eric Anholt [Mon, 6 Jun 2011 06:20:57 +0000 (23:20 -0700)]
i965: Fix flipped GT1 vs GT2 URB VS entry count limits.

12 years agoMerge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa
Stéphane Marchesin [Tue, 7 Jun 2011 03:42:30 +0000 (20:42 -0700)]
Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa

12 years agoi915g: Do generic remapping.
Stéphane Marchesin [Tue, 7 Jun 2011 03:40:16 +0000 (20:40 -0700)]
i915g: Do generic remapping.

With complex shaders there are often "holes" in the fs inputs, and we only
have 8 tex coorsd to map those to. To fix this, we remap fs inputs to [0..8].
This lets us to run many more GLSL programs.

12 years agodarwin: Set VG_LIB_{NAME,GLOB} to fix make install
Jeremy Huddleston [Mon, 6 Jun 2011 23:54:55 +0000 (19:54 -0400)]
darwin: Set VG_LIB_{NAME,GLOB} to fix make install

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
12 years agor600g: optimise the draw emission packets for r600/eg
Dave Airlie [Mon, 6 Jun 2011 10:03:13 +0000 (20:03 +1000)]
r600g: optimise the draw emission packets for r600/eg

This just reduces code size a bit for this chunk.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: use an enabled list to track enabled blocks.
Dave Airlie [Thu, 2 Jun 2011 23:59:12 +0000 (09:59 +1000)]
r600g: use an enabled list to track enabled blocks.

At the end of flushing we were scanning over 450 blocks
with generally about 50 enabled. This reduces the scanning
to just the list of enabled blocks.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g/winsys: overhaul resource range/blocks.
Dave Airlie [Mon, 6 Jun 2011 08:00:36 +0000 (18:00 +1000)]
r600g/winsys: overhaul resource range/blocks.

There isn't much point taking the overhead of range/block lookups on resources
we aren't going to be getting resource registers at wierd offsets.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: split out block init
Dave Airlie [Mon, 6 Jun 2011 04:33:23 +0000 (14:33 +1000)]
r600g: split out block init

This just splits this function up as pre-cursor to reusing
the internals of it.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: move resource setting to its own structures.
Dave Airlie [Fri, 3 Jun 2011 05:34:31 +0000 (15:34 +1000)]
r600g: move resource setting to its own structures.

resource setting could be a fair bit more lightweight,
this patch just separates the resource structs from the standard
reg tracking structs in the driver, later patches will improve
the winsys.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: only call bo loop if nbos is positive.
Dave Airlie [Mon, 6 Jun 2011 01:15:10 +0000 (11:15 +1000)]
r600g: only call bo loop if nbos is positive.

we don't need to loop over all the registers unless we have
some bos in the block, also avoid setting the ctx flags,
and move the optional stuff down below this chunk.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: don't need to call the packet dirty function if not dirty.
Dave Airlie [Fri, 3 Jun 2011 05:24:55 +0000 (15:24 +1000)]
r600g: don't need to call the packet dirty function if not dirty.

also fix a unneeded dirty check and add a dirty check speedup.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agoi915g: implement more opcodes.
Stéphane Marchesin [Mon, 6 Jun 2011 19:32:17 +0000 (12:32 -0700)]
i915g: implement more opcodes.