mesa.git
14 years agor300g: a couple more chipsets do not have HiZ RAM
Marek Olšák [Thu, 24 Jun 2010 20:19:44 +0000 (22:19 +0200)]
r300g: a couple more chipsets do not have HiZ RAM

14 years agogallium/docs: Vertex data formats.
Corbin Simpson [Thu, 24 Jun 2010 14:54:00 +0000 (07:54 -0700)]
gallium/docs: Vertex data formats.

I'm not sure if I really got it right. This seems like one of those
"Duh, of course it works that way" things, but I'd like the
documentation to be readable by people not acquainted with OGL/D3D.

14 years agoglhd: Add test for logicop enable.
Corbin Simpson [Thu, 24 Jun 2010 14:18:59 +0000 (07:18 -0700)]
glhd: Add test for logicop enable.

Only for first RT at the moment, as there is no trivial way in galahad
to look at framebuffer state and (sadly) people don't usually calloc
their CSOs, so flags could be wrongly set.

On the other hand, of course, galahad will hopefully encourage more
people to calloc their CSOs. :3

14 years agogallium/docs: Lops override the rest of the blending state when enabled.
Corbin Simpson [Thu, 24 Jun 2010 14:13:10 +0000 (07:13 -0700)]
gallium/docs: Lops override the rest of the blending state when enabled.

14 years agogallium/docs: updated remaining semantic label docs
Brian Paul [Thu, 24 Jun 2010 13:21:15 +0000 (07:21 -0600)]
gallium/docs: updated remaining semantic label docs

14 years agopipe: Add PIPE_OS_HURD
nobled [Thu, 24 Jun 2010 01:31:28 +0000 (21:31 -0400)]
pipe: Add PIPE_OS_HURD

One tiny step toward porting Gallium to the GNU/Hurd kernel
(and fixing Debian bug #585618).

Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
14 years agogallium/docs: Add lop table.
Corbin Simpson [Wed, 23 Jun 2010 21:25:26 +0000 (14:25 -0700)]
gallium/docs: Add lop table.

Was feeling kind of weird without it.

14 years agogallium/docs: Slight clarification and formatting for Blend.
Corbin Simpson [Wed, 23 Jun 2010 20:57:30 +0000 (13:57 -0700)]
gallium/docs: Slight clarification and formatting for Blend.

14 years agoMerge branch 'shader-file-reorg'
Brian Paul [Thu, 24 Jun 2010 04:30:26 +0000 (22:30 -0600)]
Merge branch 'shader-file-reorg'

1. Move all GL entrypoint functions and files into src/mesa/main/
This includes the ARB vp/vp, NV vp/fp, ATI fragshader and GLSL bits
that were in src/mesa/shader/

2. Move src/mesa/shader/slang/ to src/mesa/slang/ to reduce the tree depth

3. Rename src/mesa/shader/ to src/mesa/program/ since all the
remaining files are concerned with GPU programs.

4. Misc code refactoring.  In particular, I got rid of most of the
GLSL-related ctx->Driver hook functions.  None of the drivers used
them.

Conflicts:
src/mesa/drivers/dri/i965/brw_context.c

14 years agor300g: remove an XXX comment
Marek Olšák [Thu, 24 Jun 2010 04:15:36 +0000 (06:15 +0200)]
r300g: remove an XXX comment

14 years agor300g: move AA registers into the new AA state
Marek Olšák [Thu, 24 Jun 2010 03:54:18 +0000 (05:54 +0200)]
r300g: move AA registers into the new AA state

14 years agor300g: separate the cache flush from the framebuffer state
Marek Olšák [Thu, 24 Jun 2010 02:43:40 +0000 (04:43 +0200)]
r300g: separate the cache flush from the framebuffer state

14 years agor300g: reorder and cleanup register writes everywhere
Marek Olšák [Thu, 24 Jun 2010 01:52:45 +0000 (03:52 +0200)]
r300g: reorder and cleanup register writes everywhere

14 years agor300g: add "has HiZ" flag, add ZMask regs
Marek Olšák [Thu, 24 Jun 2010 01:02:50 +0000 (03:02 +0200)]
r300g: add "has HiZ" flag, add ZMask regs

14 years agogallium/docs: document TGSI_SEMANTIC_EDGEFLAG
Brian Paul [Wed, 23 Jun 2010 23:38:58 +0000 (17:38 -0600)]
gallium/docs: document TGSI_SEMANTIC_EDGEFLAG

14 years agogallium/docs: update TEXTURE_SHADOW_MAP MAX_PREDICATE_REGISTERS
Brian Paul [Wed, 23 Jun 2010 23:38:42 +0000 (17:38 -0600)]
gallium/docs: update TEXTURE_SHADOW_MAP MAX_PREDICATE_REGISTERS

14 years agogallium/docs: fix definitions of TGSI_SEMANTIC_POSITION, COLOR
Brian Paul [Wed, 23 Jun 2010 23:00:10 +0000 (17:00 -0600)]
gallium/docs: fix definitions of TGSI_SEMANTIC_POSITION, COLOR

14 years agodraw: use gallium's TRUE/FALSE
Brian Paul [Wed, 23 Jun 2010 17:32:08 +0000 (11:32 -0600)]
draw: use gallium's TRUE/FALSE

14 years agollvmpipe: Remove unnecessary header.
Vinson Lee [Wed, 23 Jun 2010 22:17:00 +0000 (15:17 -0700)]
llvmpipe: Remove unnecessary header.

14 years agoglhd: Simple rasterizer checks.
Corbin Simpson [Wed, 23 Jun 2010 18:34:51 +0000 (11:34 -0700)]
glhd: Simple rasterizer checks.

From the documentation.

14 years agoid, glhd: Unbreak texturing.
Corbin Simpson [Wed, 23 Jun 2010 18:25:52 +0000 (11:25 -0700)]
id, glhd: Unbreak texturing.

Argfl.

14 years agoglhd: Use an environment variable (GALAHAD) to enable. Off by default.
Corbin Simpson [Wed, 23 Jun 2010 18:06:42 +0000 (11:06 -0700)]
glhd: Use an environment variable (GALAHAD) to enable. Off by default.

14 years agodraw: don't try to precalculate the pipeline output primitive
Keith Whitwell [Wed, 23 Jun 2010 17:06:52 +0000 (18:06 +0100)]
draw: don't try to precalculate the pipeline output primitive

We were previously calculating a value which was either the geometry
shader output primitive or the application's input primitive, and
passing that to the various front/middle/back components for use as
the ultimate rendering primtive.

Unfortunately, this was not correct -- if the vcache decomposition
path is active and geometry shaders are *not* active, we can end up
with a third primitive -- specifically the decomposed version of the
input primitive.

Rather than trying to precalculate this, just let the individual
components inform their successors about which primitive type they are
recieving.

14 years agodraw: mask off DRAW_PIPE_FLAG_MASK bits in prim decompose code
Brian Paul [Wed, 23 Jun 2010 15:19:18 +0000 (09:19 -0600)]
draw: mask off DRAW_PIPE_FLAG_MASK bits in prim decompose code

Any elt may potentially have flags bits set so mask off those bits
everywhere.

Fixes crashes with demos/gamma.c, redbook/polys.c, etc. but polygon
stippling is still broken.

14 years agoegl: Add a test for MESA_EGL_NO_X11_HEADERS.
Chia-I Wu [Fri, 18 Jun 2010 16:21:39 +0000 (00:21 +0800)]
egl: Add a test for MESA_EGL_NO_X11_HEADERS.

When the macro is defined, X11 headers will not be included.

14 years agoegl: Add support for EGL_MESA_drm_display.
Chia-I Wu [Thu, 17 Jun 2010 09:09:01 +0000 (17:09 +0800)]
egl: Add support for EGL_MESA_drm_display.

The extension defines eglGetDRMDisplay that creates an EGLDisplay from a
DRM fd.  Calling eglCreateWindowSurace or eglCreatePixmapSurface with
such displays will generate EGL_BAD_NATIVE_WINDOW or
EGL_BAD_NATIVE_PIXMAP.

14 years agoegl: Introduce platform displays internally.
Chia-I Wu [Thu, 17 Jun 2010 09:14:03 +0000 (17:14 +0800)]
egl: Introduce platform displays internally.

This commit introduces type-safe platform displays internally.  A
platform display consists of a generic pointer and an enum that
specifies the platform.

An EGLDisplay is created from a platform display.  Native displays
become platform displays whose platform is determined by
_eglGetNativePlatform().  Platform windows and pixmaps may also be
introduced if needed.

14 years agoradeong: Disable Galahad for now; breaks texturing.
Corbin Simpson [Wed, 23 Jun 2010 07:11:42 +0000 (00:11 -0700)]
radeong: Disable Galahad for now; breaks texturing.

14 years agoid, glhd: Fix malloc/calloc of struct.
Corbin Simpson [Wed, 23 Jun 2010 06:40:11 +0000 (23:40 -0700)]
id, glhd: Fix malloc/calloc of struct.

( >&)

14 years agoglhd: Add query protection.
Corbin Simpson [Wed, 23 Jun 2010 06:11:01 +0000 (23:11 -0700)]
glhd: Add query protection.

Not quite copied from r300g. This is slightly more API-compliant.

14 years agoglhd: Grab framebuffer state checks from r300g.
Corbin Simpson [Wed, 23 Jun 2010 06:00:44 +0000 (23:00 -0700)]
glhd: Grab framebuffer state checks from r300g.

14 years agoglhd: Grab resource_copy_region from r300g.
Corbin Simpson [Wed, 23 Jun 2010 05:46:15 +0000 (22:46 -0700)]
glhd: Grab resource_copy_region from r300g.

14 years agoglhd: Grab is_format_supported warning from r300g.
Corbin Simpson [Wed, 23 Jun 2010 05:39:53 +0000 (22:39 -0700)]
glhd: Grab is_format_supported warning from r300g.

14 years agoglhd: Add glhd_warn for unconditional stderr output.
Corbin Simpson [Wed, 23 Jun 2010 05:37:39 +0000 (22:37 -0700)]
glhd: Add glhd_warn for unconditional stderr output.

Design decision. Bad API errors should never be silenced.

Of course, you can always not use galahad.

14 years agoid, glhd: Fix segfault with misreferenced pipe member.
Corbin Simpson [Wed, 23 Jun 2010 05:13:33 +0000 (22:13 -0700)]
id, glhd: Fix segfault with misreferenced pipe member.

And remove the offending member to keep that from happening again.

14 years agotargets, radeong: Add Galahad.
Corbin Simpson [Wed, 23 Jun 2010 05:09:52 +0000 (22:09 -0700)]
targets, radeong: Add Galahad.

Currently unconditional and causes segfaults.

14 years agoconfigure: Add galahad to default build.
Corbin Simpson [Wed, 23 Jun 2010 05:00:43 +0000 (22:00 -0700)]
configure: Add galahad to default build.

14 years agogallium/drivers: Create Galahad from identity.
Corbin Simpson [Wed, 23 Jun 2010 04:58:56 +0000 (21:58 -0700)]
gallium/drivers: Create Galahad from identity.

Galahad is a sanity-checking layer meant to replace the crufty and
scattered sanity checks inside drivers with a robust, non-silenceable,
useful set of warnings and errors that can be used to keep misbehaving
state trackers from going unnoticed.

14 years agomesa: fix attachment error checking for glGetFramebufferAttachmentParameteriv()
Brian Paul [Tue, 22 Jun 2010 14:37:44 +0000 (08:37 -0600)]
mesa: fix attachment error checking for glGetFramebufferAttachmentParameteriv()

This is a follow-on to commit 80dfec3e53fd5b5c8c31fb16376c9910258c91b0.

The valid attachments for glGetFramebufferAttachmentParameteriv() depends
on whether we're querying the default FBO or a user-created FBO.

14 years agor300/compiler: allow 1024 instructions in r5xx vertex shaders
Marek Olšák [Wed, 23 Jun 2010 01:58:46 +0000 (03:58 +0200)]
r300/compiler: allow 1024 instructions in r5xx vertex shaders

14 years agor300/compiler: allow 32 temporaries in vertex shaders
Marek Olšák [Wed, 23 Jun 2010 01:57:27 +0000 (03:57 +0200)]
r300/compiler: allow 32 temporaries in vertex shaders

14 years agor300/compiler: emulate loops in vertex shaders
Marek Olšák [Wed, 23 Jun 2010 01:55:20 +0000 (03:55 +0200)]
r300/compiler: emulate loops in vertex shaders

It is not perfect, but it is the best we got.

14 years agomesa: fix assertion failure for GL_ALPHA FBOs
Marek Olšák [Tue, 22 Jun 2010 23:39:26 +0000 (01:39 +0200)]
mesa: fix assertion failure for GL_ALPHA FBOs

14 years agor300g: attempt to fix texture corruption on RV505
Marek Olšák [Tue, 22 Jun 2010 23:35:11 +0000 (01:35 +0200)]
r300g: attempt to fix texture corruption on RV505

14 years agor300g: index buffer range checking
Marek Olšák [Tue, 22 Jun 2010 22:20:11 +0000 (00:20 +0200)]
r300g: index buffer range checking

14 years agoi915g: Revert debug hunks from last commit
Jakob Bornecrantz [Tue, 22 Jun 2010 20:55:13 +0000 (22:55 +0200)]
i915g: Revert debug hunks from last commit

14 years agoi915g: Reduce state emission by using a index bias
Jakob Bornecrantz [Sat, 12 Jun 2010 19:01:58 +0000 (21:01 +0200)]
i915g: Reduce state emission by using a index bias

14 years agoi915g: Drop fifo code in vbuf
Jakob Bornecrantz [Sat, 12 Jun 2010 15:05:52 +0000 (17:05 +0200)]
i915g: Drop fifo code in vbuf

14 years agoi915g: Change state code in vbuf code
Jakob Bornecrantz [Sat, 12 Jun 2010 15:03:41 +0000 (17:03 +0200)]
i915g: Change state code in vbuf code

14 years agoi915g: Rework debug print code
Jakob Bornecrantz [Sat, 12 Jun 2010 12:09:59 +0000 (14:09 +0200)]
i915g: Rework debug print code

14 years agoi915g: Switch to state atoms
Jakob Bornecrantz [Fri, 11 Jun 2010 23:34:54 +0000 (01:34 +0200)]
i915g: Switch to state atoms

14 years agoi915g: i915_state_sampler.c code style
Jakob Bornecrantz [Fri, 11 Jun 2010 23:22:51 +0000 (01:22 +0200)]
i915g: i915_state_sampler.c code style

14 years agoi915g: i915_state_immediate.c code style
Jakob Bornecrantz [Fri, 11 Jun 2010 22:34:53 +0000 (00:34 +0200)]
i915g: i915_state_immediate.c code style

14 years agoi915g: i915_state_dynamic.c code style
Jakob Bornecrantz [Fri, 11 Jun 2010 20:35:35 +0000 (22:35 +0200)]
i915g: i915_state_dynamic.c code style

14 years agoi915g: Create seperate option for i915g and i965g
Jakob Bornecrantz [Fri, 11 Jun 2010 11:00:16 +0000 (13:00 +0200)]
i915g: Create seperate option for i915g and i965g

14 years agou_math: Add align function npot alignments
Jakob Bornecrantz [Sun, 13 Jun 2010 14:07:49 +0000 (16:07 +0200)]
u_math: Add align function npot alignments

14 years agollvmpipe: Ignores
Jakob Bornecrantz [Sat, 12 Jun 2010 13:40:01 +0000 (15:40 +0200)]
llvmpipe: Ignores

14 years agollvmpipe: make geometry shaders and stream output work
Zack Rusin [Tue, 22 Jun 2010 16:56:54 +0000 (12:56 -0400)]
llvmpipe: make geometry shaders and stream output work

14 years agogallium: add a timestamp disjoint query
Zack Rusin [Tue, 22 Jun 2010 16:14:29 +0000 (12:14 -0400)]
gallium: add a timestamp disjoint query

allows application to not only request the frequency of the TIME_ELAPSED
clock but also to detect if that frequency was consistent throughout the
entire bracketed range of graphics commands.

14 years agogallium: add a new query
Zack Rusin [Tue, 22 Jun 2010 02:11:07 +0000 (22:11 -0400)]
gallium: add a new query

to figure out if gpu is finished with all of the previously issues commands

14 years agost/mesa: remove bogus assertions st_CompressedTexSubImage2D
Roland Scheidegger [Tue, 22 Jun 2010 12:32:25 +0000 (13:32 +0100)]
st/mesa: remove bogus assertions st_CompressedTexSubImage2D

width/height may not be a multiple of blocksize (small mip levels / npot
textures). This should be handled just fine.
Fixes #28530.

14 years agor300g: optimize the immediate mode emission path a bit
Marek Olšák [Tue, 22 Jun 2010 04:41:15 +0000 (06:41 +0200)]
r300g: optimize the immediate mode emission path a bit

14 years agor300g: do not emit ZTOP every draw call
Marek Olšák [Tue, 22 Jun 2010 03:01:58 +0000 (05:01 +0200)]
r300g: do not emit ZTOP every draw call

14 years agoswrast: fix incorrect specular highlights on backfaces
Tim Evans [Mon, 21 Jun 2010 23:18:30 +0000 (17:18 -0600)]
swrast: fix incorrect specular highlights on backfaces

See bug 28577 for details.
NOTE: this is a candidate for the 7.8 branch.

Signed-off-by: Brian Paul <brianp@vmware.com>
14 years agodocs: add link to 7.9 relnotes
Brian Paul [Thu, 10 Jun 2010 21:29:02 +0000 (15:29 -0600)]
docs: add link to 7.9 relnotes

14 years agor300g: fix crash when destroying the context on r3xx-r4xx
Marek Olšák [Mon, 21 Jun 2010 21:45:53 +0000 (23:45 +0200)]
r300g: fix crash when destroying the context on r3xx-r4xx

FDO bug #28652,

14 years agollvmpipe: s/lpfs/shader/
José Fonseca [Mon, 21 Jun 2010 13:11:15 +0000 (14:11 +0100)]
llvmpipe: s/lpfs/shader/

14 years agor300g: fix the KIL opcode for r3xx-r4xx (v4)
Marek Olšák [Sun, 20 Jun 2010 22:42:06 +0000 (00:42 +0200)]
r300g: fix the KIL opcode for r3xx-r4xx (v4)

14 years agor300g: fix assigning the texture cache region for 1 texture
Marek Olšák [Sun, 20 Jun 2010 12:05:48 +0000 (14:05 +0200)]
r300g: fix assigning the texture cache region for 1 texture

14 years agomapi: Add missing stdlib.h header for malloc declaration.
Vinson Lee [Sun, 20 Jun 2010 08:03:00 +0000 (01:03 -0700)]
mapi: Add missing stdlib.h header for malloc declaration.

14 years agoi965g: Fix setup of immediate types for gen4 disasm.
Vinson Lee [Sun, 20 Jun 2010 07:57:55 +0000 (00:57 -0700)]
i965g: Fix setup of immediate types for gen4 disasm.

Caught by clang.

Follow-up to commit 070bbd4fcd5d2b669b880b91730a7ad9d130e416.

14 years agor300g: manually assign texture cache regions
Marek Olšák [Sun, 20 Jun 2010 03:30:04 +0000 (05:30 +0200)]
r300g: manually assign texture cache regions

This should fix corrupted texturing on r3xx-r4xx.

14 years agor600g: handle DRM_API_HANDLE_TYPE_KMS in buffer_get_handle
Marek Olšák [Sun, 20 Jun 2010 01:50:44 +0000 (03:50 +0200)]
r600g: handle DRM_API_HANDLE_TYPE_KMS in buffer_get_handle

14 years agor300g: cleanup buffer_{from, get}_handle
Marek Olšák [Sun, 20 Jun 2010 01:37:14 +0000 (03:37 +0200)]
r300g: cleanup buffer_{from, get}_handle

14 years agor300g: cleanup includes
Marek Olšák [Sun, 20 Jun 2010 01:33:50 +0000 (03:33 +0200)]
r300g: cleanup includes

14 years agor300g: texture alignment code cleanup + use special alignment for AA textures
Marek Olšák [Sun, 20 Jun 2010 00:41:55 +0000 (02:41 +0200)]
r300g: texture alignment code cleanup + use special alignment for AA textures

14 years agoRevert "Fix image_matches_texture_obj() MaxLevel check"
Will Dyson [Sat, 19 Jun 2010 20:04:45 +0000 (22:04 +0200)]
Revert "Fix image_matches_texture_obj() MaxLevel check"

This reverts commit a9ee95651131e27d5acf3d10909b5b7e5c8d3e92.
It was based on a failure to understand how ther driver allocates
memory, and causes a regression with Celestia.

Set MaxLevel to dstLevel before allocating new mipmap level.

The radeon driver will fail to allocate space for a new level that
is outside of BaseLevel..MaxLevel. Set MaxLevel before allocating.

Signed-off-by: Maciej Cencora <m.cencora@gmail.com>
14 years agor300g: fix random pixels appearing / incomplete rendering
Marek Olšák [Sat, 19 Jun 2010 17:44:06 +0000 (19:44 +0200)]
r300g: fix random pixels appearing / incomplete rendering

This should fix the FDO bug #28612.

Also, these piglit tests have been fixed:
- fbo-copypix
- scissor-copypixels
- copytexsubimage
- texredefine

Finally, 2 flushes in the transfer path are no longer needed.

14 years agor300g: output floats instead of halfs when passed through translate
Marek Olšák [Sat, 19 Jun 2010 15:20:40 +0000 (17:20 +0200)]
r300g: output floats instead of halfs when passed through translate

14 years agor300g: fix clamp and mirror_clamp wrap modes when used with nearest filtering
Marek Olšák [Sat, 19 Jun 2010 04:18:11 +0000 (06:18 +0200)]
r300g: fix clamp and mirror_clamp wrap modes when used with nearest filtering

14 years agor300g: more informative warning in END_CS
Marek Olšák [Sat, 19 Jun 2010 02:55:24 +0000 (04:55 +0200)]
r300g: more informative warning in END_CS

14 years agor300g: improve the ZTOP condition
Marek Olšák [Sat, 19 Jun 2010 02:44:34 +0000 (04:44 +0200)]
r300g: improve the ZTOP condition

The real difference here is that ZTOP is now enabled if all stencil ops
are set to KEEP. This improves performance.

14 years agor300g: fix up the CS size of the rasterizer state
Marek Olšák [Sat, 19 Jun 2010 02:04:21 +0000 (04:04 +0200)]
r300g: fix up the CS size of the rasterizer state

14 years agointel: Finalize the miptree before mapping it for fallbacks.
Eric Anholt [Tue, 15 Jun 2010 19:18:40 +0000 (12:18 -0700)]
intel: Finalize the miptree before mapping it for fallbacks.

Fixes segfault in mipmap_view.c demo.  Bug #27212.

14 years agoi965: Fix the name of aa_coverage_slope in the improved AA line params.
Eric Anholt [Tue, 15 Jun 2010 18:19:14 +0000 (11:19 -0700)]
i965: Fix the name of aa_coverage_slope in the improved AA line params.

14 years agograw: add two examples using new register files
Zack Rusin [Fri, 18 Jun 2010 17:46:02 +0000 (13:46 -0400)]
graw: add two examples using new register files

14 years agogallium: add a temporary array register file
Zack Rusin [Fri, 18 Jun 2010 17:41:20 +0000 (13:41 -0400)]
gallium: add a temporary array register file

like normal temporaries, but allows to define a number of distinct
arrays, all of which make it explicit that they contain /indexable/
registers.
as a side-effect we're adding support for multi-dimensional destination
registers.
The whole thing looks like this:
DCL TEMPX[0][0..128]  # 0 array with 128 registers

ADD TEMPX[0][0], IN[0], IMM[0]
ADD TEMPX[0][1], IN[0], IMM[0]
ABS OUT[0], TEMPX[0][TEMP[0]]

14 years agogallium: add a new register file - immediate array
Zack Rusin [Fri, 18 Jun 2010 13:39:16 +0000 (09:39 -0400)]
gallium: add a new register file - immediate array

allows one to specify a safe (bound checked) array
filled with immediates. it works just like a const
array and declares much like our current immediates.

14 years agollvmpipe: Fix pointer dereference after free.
José Fonseca [Fri, 18 Jun 2010 16:37:37 +0000 (17:37 +0100)]
llvmpipe: Fix pointer dereference after free.

14 years agollvmpipe: limit the number of fragment shader variants kept around
Roland Scheidegger [Fri, 18 Jun 2010 12:52:17 +0000 (13:52 +0100)]
llvmpipe: limit the number of fragment shader variants kept around

llvmpipe can create a large number of shader variants for a single shader
(which are quite big), and they were only ever deleted if the shader itself
was deleted. This is especially apparent in things like glean
blendFunc where a new variant is created for every different subtest, chewing
up all memory.
This change limits the numbers of fragment shader variants (for all shaders)
which are kept around to a fixed number. If that would be exceeded a fixed
portion of the cached variants is deleted (since without tracking the used
variants this involves flushing we don't want to delete only one).
Always the least recently used variants (from all shaders together) are
deleted.
For now this is all per-context.
Both the number of how many variants are cached (1024) as well as how many
will be deleted at once (1/4 of the cache size) are just rough guesses and
subject to further optimization.

14 years agor300g: fix hardlocks in occlusion queries
Marek Olšák [Fri, 18 Jun 2010 00:17:29 +0000 (02:17 +0200)]
r300g: fix hardlocks in occlusion queries

Early Z test (=ZTOP) must be disabled before a query is started,
otherwise the GPU is dead. The order of emitted registers matters more
than you might think.

This fixes hardlocks in sauerbraten.

14 years agor300g: debug option for fake occlusion queries
Marek Olšák [Fri, 18 Jun 2010 00:17:17 +0000 (02:17 +0200)]
r300g: debug option for fake occlusion queries

14 years agodraw: implement triangle strips with adjacency in geometry shader
Zack Rusin [Thu, 17 Jun 2010 17:21:38 +0000 (13:21 -0400)]
draw: implement triangle strips with adjacency in geometry shader

14 years agodraw: implement triangle lists with adjacency support in gs
Zack Rusin [Thu, 17 Jun 2010 16:05:15 +0000 (12:05 -0400)]
draw: implement triangle lists with adjacency support in gs

14 years agodraw: fix a silly error
Zack Rusin [Thu, 17 Jun 2010 15:13:18 +0000 (11:13 -0400)]
draw: fix a silly error

14 years agodraw: implement line strip adjacency
Zack Rusin [Thu, 17 Jun 2010 14:54:44 +0000 (10:54 -0400)]
draw: implement line strip adjacency

14 years agodraw: implement lines with adjacency in geometry shaders
Zack Rusin [Thu, 17 Jun 2010 14:48:23 +0000 (10:48 -0400)]
draw: implement lines with adjacency in geometry shaders

14 years agodraw: validate stream output buffers
Zack Rusin [Thu, 17 Jun 2010 14:47:10 +0000 (10:47 -0400)]
draw: validate stream output buffers

fixes a crash.

14 years agodraw: fix some unsigned issue
Zack Rusin [Thu, 17 Jun 2010 08:59:48 +0000 (04:59 -0400)]
draw: fix some unsigned issue

spotted by Vinson

14 years agoegl: s/EGL_DISPLAY/EGL_PLATFORM/.
Chia-I Wu [Thu, 17 Jun 2010 08:07:46 +0000 (16:07 +0800)]
egl: s/EGL_DISPLAY/EGL_PLATFORM/.

A platform is already used to mean a window system in EGL.  No need to
use a different term.