mesa.git
13 years agoapple: Rename _gl_context_modes_find_visual to glx_config_find_visual
Jeremy Huddleston [Sun, 5 Jun 2011 22:19:59 +0000 (18:19 -0400)]
apple: Rename _gl_context_modes_find_visual to glx_config_find_visual

Fixes regression introduced by: 6ddf66e9230ee862ac341c4767cf6b3b2dd2552b

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
13 years agoapple: Re-add driContext and do_destroy
Jeremy Huddleston [Sun, 5 Jun 2011 22:02:44 +0000 (18:02 -0400)]
apple: Re-add driContext and do_destroy

Fixes regression introduced by: c491e585e43d48a2aeec96ccc4008da6c443fb42

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
13 years agoapple: Rename GLXcontext
Jeremy Huddleston [Sun, 5 Jun 2011 21:22:56 +0000 (17:22 -0400)]
apple: Rename GLXcontext

Fixes regression introduced by: c356f5867f2c1fad7155df538b9affa8dbdcf869

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
13 years agoapple: Rename __GLcontextModes to struct glx_config
Jeremy Huddleston [Sun, 5 Jun 2011 21:02:33 +0000 (17:02 -0400)]
apple: Rename __GLcontextModes to struct glx_config

Fixes regression introduced by: 6ddf66e9230ee862ac341c4767cf6b3b2dd2552b

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
13 years agoapple: Rename glcontextmodes.[ch] to glxconfig.[ch]
Jeremy Huddleston [Sun, 5 Jun 2011 20:56:01 +0000 (16:56 -0400)]
apple: Rename glcontextmodes.[ch] to glxconfig.[ch]

Fixes regression introduced by: 65d98e25770487456eb3d7eb8ec3ec8272f170b1

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
13 years agoapple: Update GL specs
Jeremy Huddleston [Sun, 5 Jun 2011 21:14:04 +0000 (17:14 -0400)]
apple: Update GL specs

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
13 years agometa: Don't do sRGB encode for framebuffer blits on sRGB-enabled framebuffers.
Eric Anholt [Wed, 1 Jun 2011 20:15:28 +0000 (13:15 -0700)]
meta: Don't do sRGB encode for framebuffer blits on sRGB-enabled framebuffers.

Fixes fbo-srgb-blit.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=35373
Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agometa: Don't do srgb to linear decode when blitting srgb textures.
Eric Anholt [Wed, 1 Jun 2011 20:00:14 +0000 (13:00 -0700)]
meta: Don't do srgb to linear decode when blitting srgb textures.

Fixes the GL_SRGB8_ALPHA8 -> GL_RGBA8 blits in fbo-srgb-blit.c

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoglx: Fix use-before-null-check in dri2InvalidateBuffers().
Eric Anholt [Wed, 1 Jun 2011 20:39:39 +0000 (13:39 -0700)]
glx: Fix use-before-null-check in dri2InvalidateBuffers().

The compiler used our dereference here to skip the NULL check below.
Fixes window resize in "jconsole -J-Dsun.java2d.opengl=True" under
OpenJDK 6.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=37766
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoi965: Drop remaining strict conformance fallback for GL_POINT_SMOOTH.
Eric Anholt [Wed, 25 May 2011 19:59:25 +0000 (12:59 -0700)]
i965: Drop remaining strict conformance fallback for GL_POINT_SMOOTH.

We actually could do this in hardware in the fragment shader using
gl_PointCoord and the point's size.

13 years agoi965: Drop strict conformance fallback for GL_LINE_STIPPLE.
Eric Anholt [Wed, 25 May 2011 19:58:21 +0000 (12:58 -0700)]
i965: Drop strict conformance fallback for GL_LINE_STIPPLE.

We implement line stipples, just not *quite* correctly.  We have a
piglit testcase to use when we want to fix it, if we do.  Until then,
don't lie to our test suites.

13 years agoi965: Drop strict conformance fallback for GL_LINE_SMOOTH.
Eric Anholt [Wed, 25 May 2011 19:54:49 +0000 (12:54 -0700)]
i965: Drop strict conformance fallback for GL_LINE_SMOOTH.

We do have hardware antialised lines.  If we care, we should actually
fix them to be conformant (or as close as possible) instead of using
this knob to fool testcases using swrast.

For some interesting reading on the state of GL_*_SMOOTH across
several drivers, see:
http://homepage.mac.com/arekkusu/bugs/invariance/HWAA.html

13 years agoi965: Drop strict conformance fallback for GL_POLYGON_SMOOTH.
Eric Anholt [Wed, 25 May 2011 19:51:47 +0000 (12:51 -0700)]
i965: Drop strict conformance fallback for GL_POLYGON_SMOOTH.

From my reading of the GL 2.1 spec, no antialiasing is strictly
conformant for polygon smoothing.  Yes, it's absurd, but then,
hardware doesn't support this so maybe it's not so absurd.

13 years agoi965: Drop INTEL_CONFORMANCE=2 fallback code.
Eric Anholt [Wed, 25 May 2011 19:51:05 +0000 (12:51 -0700)]
i965: Drop INTEL_CONFORMANCE=2 fallback code.

This was just a duplicate of no_rast=true driconf option, which is
relatively standard across drivers.

13 years agoglsl: fixed printing of structure constants.
Paul Berry [Fri, 3 Jun 2011 18:23:31 +0000 (11:23 -0700)]
glsl: fixed printing of structure constants.

ir_print_visitor::visit(ir_constant *) was failing to index properly
into ir->type->fields.structure, so the first field name was being
reprinted for every field in the structure.

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agoAST dump: fixed printing of conditionals.
Paul Berry [Fri, 3 Jun 2011 17:02:32 +0000 (10:02 -0700)]
AST dump: fixed printing of conditionals.

ast_expression::print() had an incorrect index into the subexpressions
array, so (a ? b : c) was being incorrectly rendered as (a ? b : b).

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agor600g: move spi update to only when states change.
Dave Airlie [Fri, 3 Jun 2011 05:18:59 +0000 (15:18 +1000)]
r600g: move spi update to only when states change.

This updates the spi state after ps/vs binding or rasteriser state
change.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agocso: move cso hashes to a more table driven scheme
Dave Airlie [Fri, 3 Jun 2011 01:05:47 +0000 (11:05 +1000)]
cso: move cso hashes to a more table driven scheme

this removes a bad branch pain in the hash table lookup fn.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agou_prim: convert u_trim_pipe_prim to table driven.
Dave Airlie [Fri, 3 Jun 2011 00:36:48 +0000 (10:36 +1000)]
u_prim: convert u_trim_pipe_prim to table driven.

This makes this function not be an always miss for the branch predictor.

Noticed using cachegrind, makes a minor difference to gears numbers on r600g.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: make conv pipe prim table driven.
Dave Airlie [Fri, 3 Jun 2011 00:10:01 +0000 (10:10 +1000)]
r600g: make conv pipe prim table driven.

This is a lot more branch predictor friendly, it actually
showed up in cachegrind profiles.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agomesa: fix typo (s/GLGL/GLSL/)
Brian Paul [Fri, 3 Jun 2011 03:49:03 +0000 (21:49 -0600)]
mesa: fix typo (s/GLGL/GLSL/)

13 years agomesa: 80-column wrapping
Brian Paul [Fri, 3 Jun 2011 02:56:23 +0000 (20:56 -0600)]
mesa: 80-column wrapping

13 years agomesa: consolidate glGetUniform code
Brian Paul [Fri, 3 Jun 2011 02:56:23 +0000 (20:56 -0600)]
mesa: consolidate glGetUniform code

13 years agomesa: refactor/consolidate uniform lookup code
Brian Paul [Fri, 3 Jun 2011 02:56:23 +0000 (20:56 -0600)]
mesa: refactor/consolidate uniform lookup code

13 years agomesa: add some minor fixes for geometry shaders
Brian Paul [Fri, 3 Jun 2011 02:56:23 +0000 (20:56 -0600)]
mesa: add some minor fixes for geometry shaders

13 years agodri: add missing files from 873379a8818eed9ab16c24728b7091a3a3705c5b
Brian Paul [Fri, 3 Jun 2011 00:27:10 +0000 (18:27 -0600)]
dri: add missing files from 873379a8818eed9ab16c24728b7091a3a3705c5b

13 years agomesa: add implementation of glDrawElementsInstancedBaseVertex
Pierre-Eric Pelloux-Prayer [Tue, 31 May 2011 11:33:54 +0000 (13:33 +0200)]
mesa: add implementation of glDrawElementsInstancedBaseVertex

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agoglapi: regenerated files
Pierre-Eric Pelloux-Prayer [Tue, 31 May 2011 11:34:34 +0000 (13:34 +0200)]
glapi: regenerated files

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agoglapi: add glDrawElementsInstancedBaseVertex() function to xml
Brian Paul [Thu, 2 Jun 2011 23:54:40 +0000 (17:54 -0600)]
glapi: add glDrawElementsInstancedBaseVertex() function to xml

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agodri/nouveau: Fix build with --enable-shared-dricore.
Johannes Obermayr [Thu, 2 Jun 2011 23:15:44 +0000 (17:15 -0600)]
dri/nouveau: Fix build with --enable-shared-dricore.

- Based on the work of Себастьян Gliţa Κατινα <cglita@yahoo.com>
- Split Makefile.template into Makefile.defines and Makefile.targets
- Adapt other drivers to new situation
- Fixes https://bugs.freedesktop.org/show_bug.cgi?id=35441

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agor300: remove MIN3 macro, already defined in macros.h
Brian Paul [Thu, 2 Jun 2011 23:04:30 +0000 (17:04 -0600)]
r300: remove MIN3 macro, already defined in macros.h

13 years agor600g: sampler and texture state doesn't need a range/block.
Dave Airlie [Thu, 2 Jun 2011 22:50:58 +0000 (08:50 +1000)]
r600g: sampler and texture state doesn't need a range/block.

These are handled separately in the winsys, so don't need the calculations
done at this point. this manifested as a crash in point-sprite,

Thanks to XoD on #radeon for pointing it out.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agoglx: Remove (unused, broken) fastImageUnpack fast path
Adam Jackson [Wed, 1 Jun 2011 17:00:57 +0000 (13:00 -0400)]
glx: Remove (unused, broken) fastImageUnpack fast path

Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
13 years agoglx: Fix another case of using req outside of the display lock
Adam Jackson [Wed, 1 Jun 2011 15:33:48 +0000 (11:33 -0400)]
glx: Fix another case of using req outside of the display lock

Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
13 years agosoftpipe: add a better fake implementation of fences
Marek Olšák [Wed, 1 Jun 2011 22:50:45 +0000 (00:50 +0200)]
softpipe: add a better fake implementation of fences

The flush function, when asked for, should not return a NULL fence.

NULL can only be returned if fences are not implemented, and st/mesa
doesn't call any of the fence functions if it receives a NULL fence
(because some drivers don't even set the fence hooks).

ARB_sync is exposed if fence_finish is set.

13 years agoutil: faster logbase2
Brian Paul [Thu, 2 Jun 2011 14:43:07 +0000 (08:43 -0600)]
util: faster logbase2

13 years agomesa: faster logbase2
Benjamin Bellec [Thu, 2 Jun 2011 14:31:16 +0000 (08:31 -0600)]
mesa: faster logbase2

With minor clean-ups by Brian Paul.

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agost/mesa: add GL_R11F_G11F_B10F to format table
Brian Paul [Thu, 2 Jun 2011 14:01:26 +0000 (08:01 -0600)]
st/mesa: add GL_R11F_G11F_B10F to format table

Fixes http://bugs.freedesktop.org/show_bug.cgi?id=37839

13 years agod3d1x/sm4: don't reset 1st index of multi-dimensional operands to 0
Christoph Bumiller [Thu, 2 Jun 2011 12:04:05 +0000 (14:04 +0200)]
d3d1x/sm4: don't reset 1st index of multi-dimensional operands to 0

13 years agod3d1x/sm4: fix swizzle for 1 component operands
Christoph Bumiller [Thu, 2 Jun 2011 12:01:24 +0000 (14:01 +0200)]
d3d1x/sm4: fix swizzle for 1 component operands

For example, "mov o0.w, l(1)" would use imm_values[3], which is
not valid.

13 years agoi965: Raise const.MaxTextureLevels to 14 (8192)
Chris Wilson [Thu, 2 Jun 2011 07:27:09 +0000 (08:27 +0100)]
i965: Raise const.MaxTextureLevels to 14 (8192)

Mesa now limits, by default, the max number of texture levels to 15 so we
can now support the architectural maximum for gen4-6 of 14.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
13 years agor600g: add spi state and move spi/vgt to modify register
Dave Airlie [Thu, 2 Jun 2011 05:08:24 +0000 (15:08 +1000)]
r600g: add spi state and move spi/vgt to modify register

This modifies the VGT state and move the SPI setup to its own discrete state.

It then just sets the SPI state up and the VGT state up once and modifies
them thereafter.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: decrease CPU time on set buffer resources
Dave Airlie [Thu, 2 Jun 2011 05:03:52 +0000 (15:03 +1000)]
r600g: decrease CPU time on set buffer resources

This splits the initialisation and the setting of values in the resource
buffers. We only should end up initialising once and updateing with new values
when needed.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: work out range/block etc at state build time.
Dave Airlie [Thu, 2 Jun 2011 04:57:13 +0000 (14:57 +1000)]
r600g: work out range/block etc at state build time.

This moves the overhead of working out the range/block to state build time,
it also allows the compiler to use constants for a lot of things instead
of working them out each time.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: deinline r600_pipe_state_add_reg.
Dave Airlie [Thu, 2 Jun 2011 04:53:15 +0000 (14:53 +1000)]
r600g: deinline r600_pipe_state_add_reg.

This is going to get too big to be a forced inline. Also going to remove it
from some hotpaths.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: prepare for passing ctx into _r600_pipe_state_add_reg
Dave Airlie [Thu, 2 Jun 2011 04:48:06 +0000 (14:48 +1000)]
r600g: prepare for passing ctx into _r600_pipe_state_add_reg

This moves the functions down the file, and also adds a ctx parameter.

This is precursor patch just moving stuff around and getting it ready.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: migrate macros from r600_priv.h to r600.h
Dave Airlie [Thu, 2 Jun 2011 04:42:11 +0000 (14:42 +1000)]
r600g: migrate macros from r600_priv.h to r600.h

this is just an precursor change for some later patches.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: remote ctx arg to block/range macros.
Dave Airlie [Thu, 2 Jun 2011 04:40:40 +0000 (14:40 +1000)]
r600g: remote ctx arg to block/range macros.

These aren't used anymore.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: avoid copying unnecessary pieces of a block.
Dave Airlie [Thu, 2 Jun 2011 04:29:37 +0000 (14:29 +1000)]
r600g: avoid copying unnecessary pieces of a block.

This just avoids copying stuff if its going to modify the number of dwords
later anyways.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: optimise state setting in r600_draw_vbo.
Dave Airlie [Thu, 2 Jun 2011 00:16:57 +0000 (10:16 +1000)]
r600g: optimise state setting in r600_draw_vbo.

This drop the r600_draw_vbo CPU usage on a run of nexuiz from 1.40% to 0.72%
in sysprof for me on my Fusion APU.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: force new evergreen blocks for large range.
Dave Airlie [Thu, 2 Jun 2011 04:21:39 +0000 (14:21 +1000)]
r600g: force new evergreen blocks for large range.

This range was 76 dwords long, the 75th dword changes, the first 60 or so
don't. split the block so it emits less often.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agost/mesa: add format table entry for GL_RGB9_E5
Brian Paul [Wed, 1 Jun 2011 22:25:35 +0000 (16:25 -0600)]
st/mesa: add format table entry for GL_RGB9_E5

Fixes http://bugs.freedesktop.org/show_bug.cgi?id=37839

13 years agoglapi: Make xserver location error more helpful
Nathan Kidd [Wed, 1 Jun 2011 14:29:26 +0000 (08:29 -0600)]
glapi: Make xserver location error more helpful

glx code hasn't lived under xserver/GL for a long time now.

Signed-off-by: Nathan Kidd <nkidd@opentext.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agomesa: queries of non-existent FBO attachments should return INVALID_OPERATION
Marek Olšák [Tue, 31 May 2011 18:36:07 +0000 (20:36 +0200)]
mesa: queries of non-existent FBO attachments should return INVALID_OPERATION

OpenGL 4.0 Compatibility, page 449:

If the value of FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE is NONE, no
framebuffer is bound to target. In this case querying pname FRAMEBUFFER_-
ATTACHMENT_OBJECT_NAME will return zero, and all other queries will generate
an INVALID_OPERATION error.

Reviewed-by: Chad Versace <chad@chad-versace.us>
13 years agomesa: UseShaderProgramEXT and Uniform* shouldn't be allowed inside Begin/End
Marek Olšák [Tue, 31 May 2011 12:59:44 +0000 (14:59 +0200)]
mesa: UseShaderProgramEXT and Uniform* shouldn't be allowed inside Begin/End

I couldn't find this being required by the spec.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agor300g: remove unused debug option DBG_UPLOAD
Marek Olšák [Tue, 31 May 2011 23:09:11 +0000 (01:09 +0200)]
r300g: remove unused debug option DBG_UPLOAD

And renumber the options.

13 years agor600c: add support for llano
Alex Deucher [Mon, 4 Apr 2011 16:29:50 +0000 (12:29 -0400)]
r600c: add support for llano

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
13 years agor600g: add llano support
Alex Deucher [Mon, 4 Apr 2011 16:06:11 +0000 (12:06 -0400)]
r600g: add llano support

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
13 years agoi965/fs: Use the embedded compare in SEL on gen6+.
Eric Anholt [Thu, 12 May 2011 16:03:24 +0000 (09:03 -0700)]
i965/fs: Use the embedded compare in SEL on gen6+.

This avoids the extra CMP and the predication on SEL, so in addition
to one less instruction, it makes scheduling less constrained.

Improves glbenchmark Egypt performance 0.6% +/- 0.2% (n=3).  Reduces
FS instruction count across affected shaders in shader-db by 1.3%
without regressing any.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agowayland-drm: Check visual for being NULL
Benjamin Franzke [Tue, 31 May 2011 12:20:59 +0000 (14:20 +0200)]
wayland-drm: Check visual for being NULL

13 years agoFiuxp make tarballs for wayland-egl/drm
Benjamin Franzke [Mon, 30 May 2011 12:33:30 +0000 (14:33 +0200)]
Fiuxp make tarballs for wayland-egl/drm

13 years agost/egl: Fix udev linkage when egl_dri2 is not build
Benjamin Franzke [Tue, 31 May 2011 09:14:46 +0000 (11:14 +0200)]
st/egl: Fix udev linkage when egl_dri2 is not build

13 years agoegl_dri2: Fix usage of bool values
Benjamin Franzke [Tue, 31 May 2011 09:45:51 +0000 (11:45 +0200)]
egl_dri2: Fix usage of bool values

13 years agowayland-egl: Remove left-over headers and struct
Benjamin Franzke [Tue, 31 May 2011 09:13:57 +0000 (11:13 +0200)]
wayland-egl: Remove left-over headers and struct

13 years agoi965: Remove brw_surface_state struct that is now unused.
Eric Anholt [Tue, 24 May 2011 19:33:42 +0000 (12:33 -0700)]
i965: Remove brw_surface_state struct that is now unused.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoi965: Switch brw_state_dump to using bitshifting for surface state.
Eric Anholt [Tue, 24 May 2011 19:32:19 +0000 (12:32 -0700)]
i965: Switch brw_state_dump to using bitshifting for surface state.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoi965: Replace struct with bit shifting for WM null surfaces.
Eric Anholt [Tue, 17 May 2011 17:55:40 +0000 (10:55 -0700)]
i965: Replace struct with bit shifting for WM null surfaces.

Reduces compiled size of brw_wm_surface_state.o another 1.9%.

Overall, this brw_wm_surface_state reduction series cuts
firefox-talos-gfx runtime by 0.68% +/- 0.42% (n=6).

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoi965: Replace struct with bit shifting for WM pull constant surfaces.
Eric Anholt [Tue, 17 May 2011 17:51:45 +0000 (10:51 -0700)]
i965: Replace struct with bit shifting for WM pull constant surfaces.

This reduces compiled size (4.7% of brw_wm_surface_state.o).

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoi965: Replace struct with bit shifting for WM render target surfaces.
Eric Anholt [Tue, 17 May 2011 17:35:07 +0000 (10:35 -0700)]
i965: Replace struct with bit shifting for WM render target surfaces.

This massively reduces compiled size (6.7% of brw_wm_surface_state.o).

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoi965: Replace structs with bitfield shifting for WM texture surfaces.
Eric Anholt [Thu, 28 Apr 2011 04:50:20 +0000 (21:50 -0700)]
i965: Replace structs with bitfield shifting for WM texture surfaces.

This massively reduces compiled size (4.9% of brw_wm_surface_state.o).

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoi965: Add defines for surface state setup using bitfield shifting.
Eric Anholt [Tue, 31 May 2011 19:03:52 +0000 (12:03 -0700)]
i965: Add defines for surface state setup using bitfield shifting.

It turns out that gcc is just awful at generating code for
brw_structs.h style state setup, and using bitshifting on u32s
generates better code while being similarly readable (and more
verifiable compared to the specs, using the INTEL_MASK macro).

13 years agoi965: Don't compute brw->wm.input_size_masks when it's unused.
Eric Anholt [Thu, 28 Apr 2011 04:50:20 +0000 (21:50 -0700)]
i965: Don't compute brw->wm.input_size_masks when it's unused.

It's only used in the old fragment program path, to avoid projection
when w is always 1.  We do want to do this in the new path pre-gen6
too, but we'll probably do it through the ir.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965: Drop a gratuitous "if" that the compiler didn't eliminate at -O2.
Eric Anholt [Tue, 17 May 2011 16:20:04 +0000 (09:20 -0700)]
i965: Drop a gratuitous "if" that the compiler didn't eliminate at -O2.

Oddly, this increases compiled code size.  (marking the 'if' as likely
also increases code size, but not as much).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoi965: Move prepare_wm_surfaces texobj declarations inside of _ReallyEnabled.
Eric Anholt [Tue, 17 May 2011 16:11:38 +0000 (09:11 -0700)]
i965: Move prepare_wm_surfaces texobj declarations inside of _ReallyEnabled.

Interestingly, the compiler wasn't doing this for us at -O2, so we
were doing the computation for every non-_ReallyEnabled unit.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agointel: Remove unused NO_TILE macro
Ian Romanick [Thu, 19 May 2011 12:34:19 +0000 (14:34 +0200)]
intel: Remove unused NO_TILE macro

Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agor300g: set squared microtiling for the dummy zbuffer
Marek Olšák [Tue, 31 May 2011 13:53:11 +0000 (15:53 +0200)]
r300g: set squared microtiling for the dummy zbuffer

The pitch of 4 is allowed for squared microtiling only.

13 years agor600g: cs init fixes
Alex Deucher [Tue, 31 May 2011 14:43:31 +0000 (10:43 -0400)]
r600g: cs init fixes

- all asics need to emit CONTEXT_CONTROL
- all r6xx asics need to emit 3D_START_CMDBUF

The ddx and r600c already do this. r600g should as well.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
13 years agor300g: log when getting unsupported texture format
Marek Olšák [Mon, 30 May 2011 23:16:20 +0000 (01:16 +0200)]
r300g: log when getting unsupported texture format

13 years agogallium: include limits.h in p_config.h
Dave Airlie [Mon, 30 May 2011 10:21:16 +0000 (20:21 +1000)]
gallium: include limits.h in p_config.h

We are getting inconsistent methods for endian detection (same answer when
it works, just doesn't work on some platforms) depending on whether __GLIBC__
is defined, which of course depends on include ordering before p_config.h

Just make p_config.h include limits.h to solve this.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agor600g: add context control to start of CS
Dave Airlie [Tue, 31 May 2011 05:33:07 +0000 (15:33 +1000)]
r600g: add context control to start of CS

On my original R600 card this at least lets gnome shell run for a while longer
and the piglit r300-readcache test case works a lot more reliably.

Still a few more stability issues running a piglit test run though.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: don't emit color blend register on original R600.
Dave Airlie [Tue, 31 May 2011 00:52:07 +0000 (10:52 +1000)]
r600g: don't emit color blend register on original R600.

The original R600 doesn't have these so don't emit them.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agomesa: forbid UseProgram to be called inside Begin/End
Marek Olšák [Sun, 29 May 2011 16:58:45 +0000 (18:58 +0200)]
mesa: forbid UseProgram to be called inside Begin/End

The spec doesn't state it should be an error, but. We have this piglit test
useprogram-inside-begin that passes with this commit. No idea what's correct.

NOTE: This is a candidate for the 7.10 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agost/mesa: don't use resource_copy_region for CopyPixels with conditional render
Marek Olšák [Sun, 29 May 2011 04:21:39 +0000 (06:21 +0200)]
st/mesa: don't use resource_copy_region for CopyPixels with conditional render

The conditional rendering should be able to kill CopyPixels.
I assume the render condition has no effect on resource_copy_region.

This fixes piglit:
- NV_conditional_render/copypixels

NOTE: This is a candidate for the 7.10 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agost/mesa: conditional rendering should not kill texture decompression via blit
Marek Olšák [Sun, 29 May 2011 16:20:36 +0000 (18:20 +0200)]
st/mesa: conditional rendering should not kill texture decompression via blit

NOTE: This is a candidate for the 7.10 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agost/mesa: CopyTex(Sub)Image should not be killed by conditional rendering
Marek Olšák [Sun, 29 May 2011 13:35:25 +0000 (15:35 +0200)]
st/mesa: CopyTex(Sub)Image should not be killed by conditional rendering

NOTE: This is a candidate for the 7.10 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agost/mesa: BlitFramebuffer should not be killed by conditional rendering
Marek Olšák [Sun, 29 May 2011 15:52:29 +0000 (17:52 +0200)]
st/mesa: BlitFramebuffer should not be killed by conditional rendering

NOTE: This is a candidate for the 7.10 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoswrast: BlitFramebuffer should not be killed by conditional rendering
Marek Olšák [Sun, 29 May 2011 15:52:29 +0000 (17:52 +0200)]
swrast: BlitFramebuffer should not be killed by conditional rendering

NOTE: This is a candidate for the 7.10 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agost/mesa: GenerateMipmap should not be killed by conditional rendering
Marek Olšák [Sun, 29 May 2011 13:35:25 +0000 (15:35 +0200)]
st/mesa: GenerateMipmap should not be killed by conditional rendering

NOTE: This is a candidate for the 7.10 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agost/mesa: fix typos and add some format fallbacks in format_map
Marek Olšák [Sat, 28 May 2011 14:30:51 +0000 (16:30 +0200)]
st/mesa: fix typos and add some format fallbacks in format_map

Always default to DEFAULT_*_FORMATS for mandatory GL formats.
   (st_choose_format must not fail for those)
Use DEFAULT_RGBA when alpha is required instead of RGB.
Use DEFAULT_RGB otherwise.

These are more or less the remaining differences between the old code and
the new one.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agost/mesa: consolidate listing of depth formats
Marek Olšák [Sat, 28 May 2011 13:50:10 +0000 (15:50 +0200)]
st/mesa: consolidate listing of depth formats

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agost/mesa: add GL_DEPTH_COMPONENT32 fallback formats
Marek Olšák [Sat, 28 May 2011 12:51:16 +0000 (14:51 +0200)]
st/mesa: add GL_DEPTH_COMPONENT32 fallback formats

This makes D32 work again on chipsets which can't do it.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agost/mesa: fix changing internal format via RenderbufferStorage
Marek Olšák [Sat, 28 May 2011 12:28:19 +0000 (14:28 +0200)]
st/mesa: fix changing internal format via RenderbufferStorage

The problem is: The second time the function is called with a new
internal format, strb->format is usually not PIPE_FORMAT_NONE.

RenderbufferStorage(... GL_RGBA8 ...);
RenderbufferStorage(... GL_RGBA16 ...); // had no effect on the format

Broken with: fd6f2d6e5783d8810d0ab88e1c470958fd5eb2eb
Test: piglit/fbo-storage-completeness

NOTE: This is a candidate for the 7.10 branch.
(if fd6f2d6e5783d8810d0ab88e1c470958fd5eb2eb is cherry-picked as well)

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agotgsi/ureg: bump the limit of immediates
Marek Olšák [Sun, 29 May 2011 00:53:01 +0000 (02:53 +0200)]
tgsi/ureg: bump the limit of immediates

Lowered indirect addressing can create lots of immediates.

Fixes piglit/glsl-fs-uniform-array-7 on r300g.

NOTE: This is a candidate for the 7.10 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agotrace: implement texture_barrier
Marek Olšák [Sun, 29 May 2011 01:34:00 +0000 (03:34 +0200)]
trace: implement texture_barrier

13 years agotrace: implement render_condition
Marek Olšák [Sun, 29 May 2011 01:32:54 +0000 (03:32 +0200)]
trace: implement render_condition

13 years agor300g: clear can be killed by render condition
Marek Olšák [Sun, 29 May 2011 04:12:22 +0000 (06:12 +0200)]
r300g: clear can be killed by render condition

Fixes piglit:
- NV_conditional_render/clear

13 years agor300g: Fix non-dri builds
Tom Stellard [Wed, 25 May 2011 04:11:03 +0000 (21:11 -0700)]
r300g: Fix non-dri builds

This is just a temporary solution for now until there is a better way
to share code between mesa and gallium.

13 years agor300g: fix occlusion queries when depth test is disabled or zbuffer is missing
Marek Olšák [Sun, 29 May 2011 02:36:36 +0000 (04:36 +0200)]
r300g: fix occlusion queries when depth test is disabled or zbuffer is missing

From now on, depth test is always enabled in hardware.

If depth test is disabled in Gallium, the hardware Z function is set to ALWAYS.

If there is no zbuffer set, the colorbuffer0 memory is set as a zbuffer
to silence the CS checker.

This fixes piglit:
- occlusion-query-discard
- NV_conditional_render/bitmap
- NV_conditional_render/drawpixels
- NV_conditional_render/vertex_array

13 years agor300g: cleanup render_condition a bit
Marek Olšák [Sun, 29 May 2011 01:59:07 +0000 (03:59 +0200)]
r300g: cleanup render_condition a bit

13 years agor300g: remove fake occlusion queries (debug option)
Marek Olšák [Sun, 29 May 2011 01:46:15 +0000 (03:46 +0200)]
r300g: remove fake occlusion queries (debug option)