Marek Olšák [Tue, 22 Jun 2010 04:41:15 +0000 (06:41 +0200)]
r300g: optimize the immediate mode emission path a bit
Marek Olšák [Tue, 22 Jun 2010 03:01:58 +0000 (05:01 +0200)]
r300g: do not emit ZTOP every draw call
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>
Brian Paul [Thu, 10 Jun 2010 21:29:02 +0000 (15:29 -0600)]
docs: add link to 7.9 relnotes
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,
José Fonseca [Mon, 21 Jun 2010 13:11:15 +0000 (14:11 +0100)]
llvmpipe: s/lpfs/shader/
Marek Olšák [Sun, 20 Jun 2010 22:42:06 +0000 (00:42 +0200)]
r300g: fix the KIL opcode for r3xx-r4xx (v4)
Marek Olšák [Sun, 20 Jun 2010 12:05:48 +0000 (14:05 +0200)]
r300g: fix assigning the texture cache region for 1 texture
Vinson Lee [Sun, 20 Jun 2010 08:03:00 +0000 (01:03 -0700)]
mapi: Add missing stdlib.h header for malloc declaration.
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.
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.
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
Marek Olšák [Sun, 20 Jun 2010 01:37:14 +0000 (03:37 +0200)]
r300g: cleanup buffer_{from, get}_handle
Marek Olšák [Sun, 20 Jun 2010 01:33:50 +0000 (03:33 +0200)]
r300g: cleanup includes
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
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>
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.
Marek Olšák [Sat, 19 Jun 2010 15:20:40 +0000 (17:20 +0200)]
r300g: output floats instead of halfs when passed through translate
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
Marek Olšák [Sat, 19 Jun 2010 02:55:24 +0000 (04:55 +0200)]
r300g: more informative warning in END_CS
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.
Marek Olšák [Sat, 19 Jun 2010 02:04:21 +0000 (04:04 +0200)]
r300g: fix up the CS size of the rasterizer state
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.
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.
Zack Rusin [Fri, 18 Jun 2010 17:46:02 +0000 (13:46 -0400)]
graw: add two examples using new register files
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]]
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.
José Fonseca [Fri, 18 Jun 2010 16:37:37 +0000 (17:37 +0100)]
llvmpipe: Fix pointer dereference after free.
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.
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.
Marek Olšák [Fri, 18 Jun 2010 00:17:17 +0000 (02:17 +0200)]
r300g: debug option for fake occlusion queries
Zack Rusin [Thu, 17 Jun 2010 17:21:38 +0000 (13:21 -0400)]
draw: implement triangle strips with adjacency in geometry shader
Zack Rusin [Thu, 17 Jun 2010 16:05:15 +0000 (12:05 -0400)]
draw: implement triangle lists with adjacency support in gs
Zack Rusin [Thu, 17 Jun 2010 15:13:18 +0000 (11:13 -0400)]
draw: fix a silly error
Zack Rusin [Thu, 17 Jun 2010 14:54:44 +0000 (10:54 -0400)]
draw: implement line strip adjacency
Zack Rusin [Thu, 17 Jun 2010 14:48:23 +0000 (10:48 -0400)]
draw: implement lines with adjacency in geometry shaders
Zack Rusin [Thu, 17 Jun 2010 14:47:10 +0000 (10:47 -0400)]
draw: validate stream output buffers
fixes a crash.
Zack Rusin [Thu, 17 Jun 2010 08:59:48 +0000 (04:59 -0400)]
draw: fix some unsigned issue
spotted by Vinson
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.
Chia-I Wu [Tue, 15 Jun 2010 11:34:51 +0000 (19:34 +0800)]
egl: s/_EGL_PLATFORM/_EGL_OS/ and s/POSIX/UNIX/.
A platform means a native window system in EGL. Use OS that follows
Gallium instead.
Chia-I Wu [Thu, 17 Jun 2010 06:10:53 +0000 (14:10 +0800)]
st/egl: Build sw/fbdev winsys for fbdev backend.
Target egl_fbdev_swrast.so needs sw/fbdev/libfbdev.a.
Marek Olšák [Thu, 17 Jun 2010 03:14:24 +0000 (05:14 +0200)]
r300g: more reasonable MSPOS defaults in error path
Marek Olšák [Thu, 17 Jun 2010 03:11:07 +0000 (05:11 +0200)]
r300g: fix surface leaks
Corbin Simpson [Thu, 17 Jun 2010 01:57:51 +0000 (18:57 -0700)]
gallium/docs: GLSL glossary entry.
Corbin Simpson [Thu, 17 Jun 2010 01:45:50 +0000 (18:45 -0700)]
gallium/docs: Explain DFRACEXP/DLDEXP.
Corbin Simpson [Thu, 17 Jun 2010 01:34:51 +0000 (18:34 -0700)]
gallium/docs: Remove unneeded "doubles", add double blurb.
Corbin Simpson [Thu, 17 Jun 2010 01:34:32 +0000 (18:34 -0700)]
gallium/docs: Label opcodes by capability bits.
Corbin Simpson [Wed, 16 Jun 2010 23:56:55 +0000 (16:56 -0700)]
gallium/docs: R and RG texture swizzles.
We *did* reach an agreement on this a few months ago, and now the docs
reflect it. However, we never got around to UV and Z...
Corbin Simpson [Wed, 16 Jun 2010 23:52:52 +0000 (16:52 -0700)]
gallium/docs: Flesh out the distro information.
I'm not sure I picked the best voice here. I might come back to this
later.
Corbin Simpson [Wed, 16 Jun 2010 18:10:46 +0000 (11:10 -0700)]
gallium/docs: Fix RST error.
Vinson Lee [Thu, 17 Jun 2010 00:56:00 +0000 (17:56 -0700)]
r300g: Fix uninitialized variable warnings in error path.
Vinson Lee [Thu, 17 Jun 2010 00:44:26 +0000 (17:44 -0700)]
intel: Remove unnecessary headers.
Zack Rusin [Wed, 16 Jun 2010 19:56:17 +0000 (15:56 -0400)]
draw: make sure we correctly iterate over output buffers on stream out
we kept overwriting the first attribute of a vertex in a single-stream-
out-buffer case
Zack Rusin [Wed, 16 Jun 2010 19:10:21 +0000 (15:10 -0400)]
graw: remove wrong test
Zack Rusin [Wed, 16 Jun 2010 19:03:55 +0000 (15:03 -0400)]
draw: add stream output decomposition file
Zack Rusin [Wed, 16 Jun 2010 18:42:17 +0000 (14:42 -0400)]
draw: rewrite stream output to handle all the dark corners
register masks, multiple output buffers, multiple primitives,
non-linear vertices (elts) and stride semantics.
Zack Rusin [Wed, 16 Jun 2010 12:52:33 +0000 (08:52 -0400)]
translate: don't crash on elts paths with instances
Corbin Simpson [Wed, 16 Jun 2010 18:01:34 +0000 (11:01 -0700)]
r300g: Fix up resolve.
Yay for old code.
Corbin Simpson [Wed, 16 Jun 2010 17:51:35 +0000 (10:51 -0700)]
r300g: Fix MSAA state size.
Corbin Simpson [Wed, 16 Jun 2010 17:51:04 +0000 (10:51 -0700)]
r300g: Don't multisample non-32-bpp render targets.
Corbin Simpson [Wed, 16 Jun 2010 17:50:37 +0000 (10:50 -0700)]
r300g: Finish resolve function.
Corbin Simpson [Mon, 14 Jun 2010 03:52:58 +0000 (20:52 -0700)]
r300g: Add resource resolve function.
Corbin Simpson [Wed, 26 May 2010 05:33:21 +0000 (22:33 -0700)]
r300g: Moar MSAA setup.
Need to just add the resolve, then go switch to new DRM and test.
Corbin Simpson [Wed, 26 May 2010 04:57:10 +0000 (21:57 -0700)]
r300g: Fix indentation.
I could *not* let this slide since I'm on a 78-char-wide terminal.
Corbin Simpson [Wed, 26 May 2010 04:45:38 +0000 (21:45 -0700)]
r300g: Old MSAA code from before gallium-msaa.
Alan Hourihane [Wed, 16 Jun 2010 17:10:34 +0000 (18:10 +0100)]
util: add alloc check
Alan Hourihane [Wed, 16 Jun 2010 16:55:00 +0000 (17:55 +0100)]
draw: add alloc check
Henri Verbeet [Wed, 16 Jun 2010 16:46:07 +0000 (12:46 -0400)]
r600: GL_COORD_REPLACE state is only relevant when point sprites are enabled.
Marc [Wed, 16 Jun 2010 16:44:02 +0000 (12:44 -0400)]
r600: fix warnings
Dan Nicholson [Wed, 16 Jun 2010 16:23:17 +0000 (09:23 -0700)]
osmesa: always build standalone for internal symbols
When building OSMesa and xlib GL, the resulting OSMesa would be linked
against libGL instead of the internal mesa libraries. However, when
building with -fvisibility=hidden, some of the internal functions used
in OSMesa could not be resolved through libGL.
Instead, always build OSMesa standalone without linking against libGL.
This has the advantage that OSMesa is always built the same way, but it
means that disk space is wasted when libGL is installed since both
libraries will contain the internal objects.
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Tested-by: Tom Fogal <tfogal@alumni.unh.edu>
Alan Hourihane [Wed, 16 Jun 2010 11:27:20 +0000 (12:27 +0100)]
draw: handle some out of memory conditions
Zack Rusin [Wed, 16 Jun 2010 09:25:20 +0000 (05:25 -0400)]
graw: add a gs test for non-sequential inputs
Vinson Lee [Wed, 16 Jun 2010 00:34:59 +0000 (17:34 -0700)]
draw: Remove unnecessary headers.
Zack Rusin [Tue, 15 Jun 2010 20:37:32 +0000 (16:37 -0400)]
gs: make sure we end primitives when finishing executing shaders
Zack Rusin [Tue, 15 Jun 2010 20:09:30 +0000 (16:09 -0400)]
draw/gs: make sure gs works with elts and doesn't overrun the buffer
Kristian Høgsberg [Tue, 15 Jun 2010 17:07:01 +0000 (13:07 -0400)]
mesa: Allow querying the system FBO in GetFramebufferAttachmentParameteriv
If the default framebuffer is bound to <target>, then
<attachment> must be one of FRONT_LEFT, FRONT_RIGHT, BACK_LEFT,
BACK_RIGHT, AUXi, DEPTH_BUFFER, or STENCIL_BUFFER, identifying a
color buffer, the depth buffer, or the stencil buffer, and
<pname> may be FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE or
FRAMEBUFFER_ATTACHMENT_OBJECT_NAME.
as well as these <pname> values
FRAMEBUFFER_ATTACHMENT_RED_SIZE,
FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE, or
FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING.
https://bugs.freedesktop.org/show_bug.cgi?id=28551
Zack Rusin [Tue, 15 Jun 2010 16:14:18 +0000 (12:14 -0400)]
graw: test multiple cb's in geometry shaders
Zack Rusin [Tue, 15 Jun 2010 16:01:47 +0000 (12:01 -0400)]
graw: fix setup for multiple constant buffers
Zack Rusin [Tue, 15 Jun 2010 13:11:10 +0000 (09:11 -0400)]
draw: run the pipeline with the correct number of verts
verts per primitive, not total count
Zack Rusin [Tue, 15 Jun 2010 12:49:00 +0000 (08:49 -0400)]
draw: fix primitive indexing in the pipeline
spotted by Keith
Zack Rusin [Tue, 15 Jun 2010 12:05:51 +0000 (08:05 -0400)]
draw: finish the new pipeline setup
Keith came up with a new way of running the pipeline which involves passing
a few info structs around (for fetch, vertices and prims) and allows us
to correctly handle cases where we endup with multiple primitives generated
by the pipeline itself.
Zack Rusin [Tue, 15 Jun 2010 10:12:56 +0000 (06:12 -0400)]
softpipe/gs: fix a crash when a gs isn't present
Keith Whitwell [Mon, 14 Jun 2010 14:11:59 +0000 (15:11 +0100)]
draw wip
Vinson Lee [Tue, 15 Jun 2010 00:50:15 +0000 (17:50 -0700)]
i965: Remove unnecessary header.
Marek Olšák [Mon, 14 Jun 2010 21:38:48 +0000 (23:38 +0200)]
r300g: initialize US_CODE_BANK on r4xx
Eric Anholt [Sun, 13 Jun 2010 07:41:01 +0000 (00:41 -0700)]
i965: Fix surface state dumping with INTEL_DEBUG=batch.
I broke this with the state streaming changes.
Zhenyu Wang [Sun, 13 Jun 2010 05:39:29 +0000 (22:39 -0700)]
i965: correct the gen6 line stipple enable define.
Eric Anholt [Sun, 13 Jun 2010 04:51:37 +0000 (21:51 -0700)]
intel: Remove long-dead comment about releasing texture heaps.
BOs are stored in the bufmgr, which is freed as part of the screen
structure.
José Fonseca [Mon, 14 Jun 2010 16:36:17 +0000 (17:36 +0100)]
gallivm: Omit references to NoFramePointerElimNonLeaf
It was added after 2.7.
José Fonseca [Mon, 14 Jun 2010 16:11:21 +0000 (17:11 +0100)]
util: Use int type for format field width.
As suggested by gcc warning.
José Fonseca [Sun, 13 Jun 2010 12:13:11 +0000 (13:13 +0100)]
gallivm: Override some of the default target options.
In particular:
- enable LLVM <-> GDB integration for JIT code
- disable frame-pointer elimination on debug/profile builds
- enable fast-math.
José Fonseca [Thu, 10 Jun 2010 15:23:25 +0000 (16:23 +0100)]
gallivm: Use func_to_pointer().
José Fonseca [Thu, 10 Jun 2010 15:22:49 +0000 (16:22 +0100)]
util: Add a func_to_pointer util function too.
Zack Rusin [Mon, 14 Jun 2010 14:48:40 +0000 (10:48 -0400)]
graw: small fixups for the gs examples
Marek Olšák [Mon, 14 Jun 2010 11:03:13 +0000 (13:03 +0200)]
r300g: fix uploading RC state shader constants on r3xx
I've messed this up in one of my previous commits.
Reported-by: Igor Murzov
Marek Olšák [Sun, 13 Jun 2010 23:20:14 +0000 (01:20 +0200)]
r300g: drop begin_cs/end_cs
I have had a look at the libdrm sources and they just contain more or less
the same checking we do in macros, and begin_cs may realloc the CS buffer
if we overflow it, which never happens with r300g. So these are pretty
much useless.
There is a small but measurable performance increase by dropping the two
functions.
Marek Olšák [Mon, 14 Jun 2010 03:18:47 +0000 (05:18 +0200)]
r300g: rewrite occlusion queries
The previous implementation had issues with queries spanning over several
command streams as well as using a very large number of queries.
This fixes flickering in Enemy Territory: Quake Wars. The driver now renders
everything correctly in this game and the graphics is awesome.
Marek Olšák [Mon, 14 Jun 2010 00:51:29 +0000 (02:51 +0200)]
r300g: emit viewport state as a dword table
Marek Olšák [Mon, 14 Jun 2010 00:28:44 +0000 (02:28 +0200)]
r300g: subclass pipe_surface
Marek Olšák [Mon, 14 Jun 2010 00:26:02 +0000 (02:26 +0200)]
r300g: simplify reloc macros