Vinson Lee [Sat, 14 Aug 2010 07:53:28 +0000 (00:53 -0700)]
glsl/cl: Add forward declaration.
Brian Paul [Fri, 13 Aug 2010 17:02:49 +0000 (11:02 -0600)]
mesa: assorted clean-ups, var type changes, assertions in prog_optimize.c
Benjamin Segovia [Fri, 13 Aug 2010 16:36:47 +0000 (10:36 -0600)]
mesa: more/better program optimizations
This is the patch from Benjamin's Aug 11, 2010 email with minor fixes
(such as moving declarations before code)
Signed-off-by: Brian Paul <brianp@vmware.com>
George Sapountzis [Wed, 11 Aug 2010 21:03:56 +0000 (00:03 +0300)]
st/dri: make dri_drawable_validate_att static
George Sapountzis [Wed, 11 Aug 2010 20:26:14 +0000 (23:26 +0300)]
st/dri: move TFP code to dri_drawable.c
This is based on a patch by nobled <nobled@dreamwidth.org> and allows the TFP
extension to be enabled for DRISW also. This patch does not enable TFP for DRISW
though, because testing on xephyr segfaults here (for both classic and gallium):
Program received signal SIGSEGV, Segmentation fault.
0x00786a4a in _mesa_GenTextures (n=1, textures=0xbfffee4c) at main/texobj.c:788
788 ASSERT_OUTSIDE_BEGIN_END(ctx);
(gdb)
(gdb) where
\#0 0x00786a4a in _mesa_GenTextures (n=1, textures=0xbfffee4c) at main/texobj.c:788
\#1 0x0817a004 in __glXDisp_GenTextures ()
\#2 0x08168498 in __glXDispatch ()
\#3 0x0808b6ce in Dispatch ()
\#4 0x08084435 in main ()
The TFP code is generic except for the teximage call. We need to verify that
DRISW correclty implements whatever hook teximage finally calls.
nobled [Wed, 11 Aug 2010 20:36:52 +0000 (23:36 +0300)]
st/dri: Fix segmentation fault in sw drivers
George Sapountzis [Wed, 11 Aug 2010 20:18:55 +0000 (23:18 +0300)]
st/dri: dri_drawable_get_format is shared between DRI2 and DRISW
Vinson Lee [Fri, 13 Aug 2010 08:23:39 +0000 (01:23 -0700)]
mesa: Clean up header file inclusion in vf.h.
Remove mtypes.h.
Include glheader.h for GL symbols.
Vinson Lee [Fri, 13 Aug 2010 07:48:34 +0000 (00:48 -0700)]
swrast: Clean up header file inclusion in ss_vb.h.
Remove unnecessary header swrast_setup.h.
Vinson Lee [Fri, 13 Aug 2010 06:56:52 +0000 (23:56 -0700)]
swrast: Clean up header file inclusion in ss_triangle.h.
Remove ss_context.h.
Include mtypes.h for GLcontext symbol.
Vinson Lee [Fri, 13 Aug 2010 06:51:16 +0000 (23:51 -0700)]
swrast: Clean up header file inclusion in ss_context.h.
Remove mtypes.h and swrast_setup.h.
Include glheader.h for GL symbols.
Vinson Lee [Fri, 13 Aug 2010 06:27:27 +0000 (23:27 -0700)]
mesa: Include missing header in programopt.h.
Include mtypes.h for GLcontext and gl_register_file symbols.
Marek Olšák [Fri, 13 Aug 2010 06:16:59 +0000 (08:16 +0200)]
r300g: do not support separate depth/stencil clear in the driver
It doesn't work well with Hyper-Z, so put the burden on the state tracker.
Marek Olšák [Fri, 13 Aug 2010 02:34:38 +0000 (04:34 +0200)]
r300g: fix fastfill when color and Z clear are invoked separately
This always restores the previous depth clear value after CBZB clear.
Marek Olšák [Fri, 13 Aug 2010 01:27:45 +0000 (03:27 +0200)]
r600g: update shader caps
Sent on ML by Владимир.
These values are what fglrx returns.
Marek Olšák [Fri, 13 Aug 2010 00:58:51 +0000 (02:58 +0200)]
r300g: disable depth clamp for now
It breaks Regnum Online in that it renders random triangles
all over the screen.
https://bugs.freedesktop.org/show_bug.cgi?id=29518
Vinson Lee [Fri, 13 Aug 2010 00:37:00 +0000 (17:37 -0700)]
mesa: fpclassify is available with MinGW.
This patch fixes the MinGW build.
Dave Airlie [Thu, 12 Aug 2010 23:12:49 +0000 (09:12 +1000)]
r600g: fix warning in the winsys
Dave Airlie [Fri, 13 Aug 2010 00:16:29 +0000 (10:16 +1000)]
r600g: fix memory leaks running gears.
I noticed gears memory usage was heading skywards, some r600 "states"
aren't properly refcounted, and the ctx->state is never freed.
Vinson Lee [Fri, 13 Aug 2010 00:12:56 +0000 (17:12 -0700)]
translate_test: Fix compilation with MSVC.
Vinson Lee [Thu, 12 Aug 2010 23:32:49 +0000 (16:32 -0700)]
scons: Add main/querymatrix.c to SCons build.
Commit
87eb66775949af6e9512daf7e4665c1cfa6b8745 added querymatrix.c to
make but not to SCons.
Brian Paul [Thu, 12 Aug 2010 21:59:50 +0000 (15:59 -0600)]
glsl: print to stderr like other program printing code
Vinson Lee [Thu, 12 Aug 2010 21:54:30 +0000 (14:54 -0700)]
mesa: Fix FreeBSD build with llvm enabled.
On FreeBSD LC_CTYPE_MASK is not available but 'llvm-config --cppflags'
adds the compiler flag -D_GNU_SOURCE to the build.
Luca Barbieri [Thu, 12 Aug 2010 20:07:37 +0000 (22:07 +0200)]
translate_test: fix compilation on non-POSIX platforms
Use a kludgy function based on rand() instead of drand48()
Luca Barbieri [Thu, 12 Aug 2010 16:18:41 +0000 (18:18 +0200)]
translate_test: improve
1. Generate random data specifically for float and doubles, so that
they end up in [0, 1] range
2. Don't test useless conversions like SCALED <-> NORM
3. Poison the buffers before testing
Marek Olšák [Thu, 12 Aug 2010 11:34:53 +0000 (13:34 +0200)]
Revert "u_blitter: unify clear_depth_stencil and flush_depth_stencil"
This reverts commit
de4784e36505316c2a5ab34cc5b371d17f38d3c5.
Andre Maasikas [Wed, 11 Aug 2010 11:30:18 +0000 (14:30 +0300)]
r600: add support for draw_elements_base_vertex
use VTX_BASE_VTX_LOC for offset, last time using INDEX_OFFSET was
probably a wrong register for this
Vinson Lee [Thu, 12 Aug 2010 07:33:48 +0000 (00:33 -0700)]
mesa: Clean up header file inclusion in prog_uniform.h.
Remove mtypes.h.
Remove prog_statevars.h.
Include glheader.h for GL symbols.
Vinson Lee [Thu, 12 Aug 2010 07:27:01 +0000 (00:27 -0700)]
mesa: Include missing headers in prog_print.h.
Include stdio.h for FILE symbol.
Include glheader.h for GL symbols.
Include mtypes.h for GLcontext symbol.
Add forward declarations.
Vinson Lee [Thu, 12 Aug 2010 07:18:06 +0000 (00:18 -0700)]
mesa: Include missing header in prog_optimize.h.
Include mtypes.h for GLcontext symbol.
Dave Airlie [Thu, 12 Aug 2010 06:32:19 +0000 (16:32 +1000)]
r600g: fix typo in stencil translate.
fixes piglit stencil-twoside and stencil-wrap
Dave Airlie [Thu, 12 Aug 2010 06:29:04 +0000 (16:29 +1000)]
r600g: fix provoking-vertex piglit test.
Dave Airlie [Thu, 12 Aug 2010 06:06:40 +0000 (16:06 +1000)]
r600g: improve texture format checker.
This takes the r300g texture format checker and fixes it up for r600g,
it passes glean texSwizzle, pixelformats, and texture_srgb tests,
however I think it L8S8_SRGB is broken as is L8_SRGB, need to investigate.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Marek Olšák [Thu, 12 Aug 2010 03:06:21 +0000 (05:06 +0200)]
u_blitter: unify clear_depth_stencil and flush_depth_stencil
No need to enable depth test for clear.
Vinson Lee [Thu, 12 Aug 2010 01:57:27 +0000 (18:57 -0700)]
scons: Fix freebsd8 build.
Vinson Lee [Thu, 12 Aug 2010 00:58:06 +0000 (17:58 -0700)]
scons: Add freebsd8 to list of accepted platforms.
Marek Olšák [Wed, 11 Aug 2010 22:39:04 +0000 (00:39 +0200)]
r300/compiler: remove an unused variable
Luca Barbieri [Wed, 11 Aug 2010 20:26:57 +0000 (22:26 +0200)]
translate_test: fix segfault on x86-64
Luca Barbieri [Wed, 11 Aug 2010 20:11:19 +0000 (22:11 +0200)]
u_staging: remove useless inline keyword
Luca Barbieri [Wed, 11 Aug 2010 19:28:33 +0000 (21:28 +0200)]
translate_test: fix, reindent, and improve
1. Fix the segfault due to the reverted commit using the new interface
2. Reindent to Mesa 3 spaces style
3. Improve output and return success/failure with error code
4. Add much better support for testing translate_sse
Luca Barbieri [Wed, 11 Aug 2010 19:19:12 +0000 (21:19 +0200)]
translate: allow clients to ask for supported output formats
Currently translate asserts on unsupported output formats, making
it impossible to use for some purposes, such as testing whether it
actually works on all formats it supports.
Removing the assert was met with opposition, so this change allows
clients to ask whether an output format is supported, and they are thus
able to avoid attempting to use it.
Since this is just an addition to the API, no adverse effect is
possible, and it makes the testsuite work again.
Vinson Lee [Wed, 11 Aug 2010 19:45:02 +0000 (12:45 -0700)]
auxiliary: Make u_staging.c MSVC compatible.
Fixes MSVC build.
Vinson Lee [Wed, 11 Aug 2010 19:18:25 +0000 (12:18 -0700)]
translate: Add translate_test.c to SCons.
This is a follow-up to commit
945e38c73b46afc12b0655f9fc8200f216a8f8c1,
which added translate_test.c to make.
Vinson Lee [Wed, 11 Aug 2010 19:04:54 +0000 (12:04 -0700)]
auxiliary: Add u_staging.c to SCons build.
This is a follow-up to commit
b85c71d4e1e4ed788be834dff5b7b3c0cd0402ac
which added u_staging.c to make.
Tom Stellard [Wed, 11 Aug 2010 16:25:45 +0000 (09:25 -0700)]
r300/compiler: Implement the CONT opcode.
Tom Stellard [Wed, 11 Aug 2010 16:24:07 +0000 (09:24 -0700)]
r300/compiler: Handle loops in the register allocator.
Jerome Glisse [Wed, 11 Aug 2010 18:26:07 +0000 (14:26 -0400)]
r600g: accept empty frag prog shader
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Jerome Glisse [Wed, 11 Aug 2010 17:49:06 +0000 (13:49 -0400)]
r600g: add src negation support
Should fix few glBitmap cases.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
José Fonseca [Wed, 11 Aug 2010 17:44:17 +0000 (18:44 +0100)]
gallivm: Fix and enable the extra Newton/Raphson step in lp_build_rcp().
Thanks to Michal for spotting this.
Jerome Glisse [Wed, 11 Aug 2010 16:19:33 +0000 (12:19 -0400)]
r600g: add point/sprite rendering support
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Luca Barbieri [Wed, 11 Aug 2010 14:59:25 +0000 (16:59 +0200)]
Revert "translate_generic: return NULL instead of assert(0) if format not supported"
This reverts commit
16b45ca7cefb3432b4133fe9d0b1dbfe3f286131.
José Fonseca asked for a revert.
Note that the testsuite will now segfault since it attempts to test
all possible formats.
Luca Barbieri [Wed, 11 Aug 2010 14:00:32 +0000 (16:00 +0200)]
translate_generic: fix broken A8R8G8B8_UNORM output
translate was attempting to output A8R8G8B8_UNORM as if it were
R8G8B8A8_UNORM.
Now the tests just added pass.
Luca Barbieri [Wed, 11 Aug 2010 13:57:37 +0000 (15:57 +0200)]
translate: add testsuite
Currently only checks all possible format conversions, and doesn't
attempt to test whether multiple buffers/elements or indices work.
Luca Barbieri [Wed, 11 Aug 2010 13:59:43 +0000 (15:59 +0200)]
translate_generic: return NULL instead of assert(0) if format not supported
This gives the caller a chance to recover (or crash anyway otherwise).
Luca Barbieri [Fri, 6 Aug 2010 09:08:45 +0000 (11:08 +0200)]
auxiliary: fix util_framebuffer_copy
util_framebuffer_copy was attempting to copy all elements of the
source framebuffer state.
However, this breaks if the user does not zero initialize the structure.
Instead, only copy the elements up to nr_cbufs, and clear elements up
to dst->nr_cbufs, if the destination was larger than the source.
José Fonseca [Wed, 11 Aug 2010 14:13:17 +0000 (15:13 +0100)]
gallivm: Use lp_build_div instead of lp_build_mul + lp_build_rcp.
Single divide, so let lp_build_div decide how to implement this.
This will save a multiplication in architectures which don't have
a RCP intrinsic.
José Fonseca [Wed, 11 Aug 2010 14:11:12 +0000 (15:11 +0100)]
gallivm: Use unsigned shift in lp_build_minify.
Texture dimensions are unsigned.
José Fonseca [Wed, 11 Aug 2010 14:10:28 +0000 (15:10 +0100)]
llvmpipe: Debug code to dump interpolation coefficients.
José Fonseca [Wed, 11 Aug 2010 14:09:54 +0000 (15:09 +0100)]
llvmpipe: Use single precision divide for one over area computation.
Marek Olšák [Wed, 11 Aug 2010 13:11:37 +0000 (15:11 +0200)]
util: copy the u_staging commit message to the code
Luca Barbieri [Tue, 3 Aug 2010 19:20:53 +0000 (21:20 +0200)]
auxiliary: support for transfers using staging resources
Direct3D 10/11 has no concept of transfers. Applications instead
create resources with a STAGING or DYNAMIC usage, copy between them
and the real resource and use Map to map the STAGING/DYNAMIC resource.
This util module allows to implement Gallium drivers as a Direct3D
driver would be implemented: transfers allocate a resource with
PIPE_USAGE_STAGING, and copy the data between it and the real resource
with resource_copy_region.
Luca Barbieri [Tue, 10 Aug 2010 08:26:14 +0000 (10:26 +0200)]
gallium: add ALWAYS_INLINE
Used when we want to be sure the compiler inlines a large function into
an inner loop.
Luca Barbieri [Tue, 3 Aug 2010 20:19:30 +0000 (22:19 +0200)]
u_surfaces: add util_surfaces_peek
Used to find out if a surface exists without creating one.
Luca Barbieri [Fri, 6 Aug 2010 07:46:14 +0000 (09:46 +0200)]
u_surfaces: use cso_hash instead of util_hash_table
Using cso_hash directly is the right thing since util_hash_table
adds useless overhead and is harder to use for this application.
Luca Barbieri [Fri, 6 Aug 2010 07:53:15 +0000 (09:53 +0200)]
u_surfaces: fix surface leak due to off by one
Luca Barbieri [Wed, 11 Aug 2010 08:54:31 +0000 (10:54 +0200)]
auxiliary: make primitive splitter assert on unimplemented adjacency prims
They are unimplemented, even though the framework makes it possible to
implement them well, and nv50 needs them.
Luca Barbieri [Wed, 11 Aug 2010 08:51:28 +0000 (10:51 +0200)]
auxiliary: fix u_split_prim naming convention
Current practice is to start identifiers with "util_" instead of "u_".
Luca Barbieri [Wed, 11 Aug 2010 08:46:12 +0000 (10:46 +0200)]
auxiliary: move Ben Skeggs' primitive splitter to common code
This is a simple framework that handles splitting primitives in an
abstract way.
The user has to specify the primitive start, start index and count.
Then, it can ask the primitive splitter to "draw" a chunk of the
primitive, staying under a given vertex/index budget.
The primitive splitter will then call user-supplied functions to
emit a range of vertices/indices, as well as switch the edgeflag
on or off.
This is particularly useful for hardware that either has limits
on the vertex count field, or where vertices are pushed on a FIFO
or temporary buffer of limited size.
Note that unlike other splitters, it does not manipulate data in
any way, and merely asks a callback to do so, in vertex intervals.
Vinson Lee [Wed, 11 Aug 2010 08:10:54 +0000 (01:10 -0700)]
mesa: Include missing header in prog_noise.h.
Include glheader.h for GLfloat symbol.
Vinson Lee [Wed, 11 Aug 2010 08:05:49 +0000 (01:05 -0700)]
mesa: Clean up header file inclusion in prog_instruction.h.
Remove mfeatures.h.
Include glheader.h for GL symbols.
Vinson Lee [Wed, 11 Aug 2010 07:43:28 +0000 (00:43 -0700)]
mesa: Include missing header in prog_execute.h.
Include mtypes.h for GLcontext symbol.
Vinson Lee [Wed, 11 Aug 2010 07:35:34 +0000 (00:35 -0700)]
mesa: Include missing header in prog_cache.h.
Include mtypes.h for GLcontext symbol.
Vinson Lee [Wed, 11 Aug 2010 07:33:02 +0000 (00:33 -0700)]
mesa: Include missing header in nvvertparse.h.
Include mtypes.h for GLcontext symbol.
Vinson Lee [Wed, 11 Aug 2010 07:29:26 +0000 (00:29 -0700)]
mesa: Include missing header in nvfragparse.h.
Include mtypes.h for GLcontext symbol.
Vinson Lee [Wed, 11 Aug 2010 07:26:05 +0000 (00:26 -0700)]
mesa: Remove unnecessary header from hash_table.h.
M.Froehlich@science-computing.de [Wed, 11 Aug 2010 03:19:46 +0000 (21:19 -0600)]
swrast: fix span color array pointer assignment for 32-bit/channel rendering
See fd.o bug 29487.
NOTE: This is a candidate for the 7.8 branch.
Signed-off-by: Brian Paul <brianp@vmware.com>
Marek Olšák [Wed, 11 Aug 2010 00:58:50 +0000 (02:58 +0200)]
r300g: initialize VAP_VTX_STATE_CNTL
This got lost during the rasterizer rewrite.
Marek Olšák [Tue, 10 Aug 2010 12:21:05 +0000 (14:21 +0200)]
r300g: implement gl_FrontFacing
Vinson Lee [Wed, 11 Aug 2010 01:05:52 +0000 (18:05 -0700)]
swrast: Remove unnecessary header.
Vinson Lee [Wed, 11 Aug 2010 00:53:08 +0000 (17:53 -0700)]
svga: Remove unnecessary headers.
Vinson Lee [Wed, 11 Aug 2010 00:39:13 +0000 (17:39 -0700)]
r300g: Remove unnecessary header.
Nigel Stewart [Tue, 10 Aug 2010 23:27:37 +0000 (17:27 -0600)]
glut: also check for GLX_ARB_multisample
Signed-off-by: Brian Paul <brianp@vmware.com>
Brian Paul [Tue, 10 Aug 2010 15:14:22 +0000 (09:14 -0600)]
mesa: use switch stmt in init_program_limits()
Brian Paul [Tue, 10 Aug 2010 15:10:30 +0000 (09:10 -0600)]
mesa: remove obsolete comments
Tom Stellard [Sun, 8 Aug 2010 19:53:29 +0000 (12:53 -0700)]
r300/compiler: Use predicate bit for IF statements in r500 vertex shaders
Tom Stellard [Thu, 5 Aug 2010 17:19:00 +0000 (10:19 -0700)]
r300/compiler: Implement hardware assisted loops for vertex shaders.
Single loops work, but nested loops do not.
Tom Stellard [Fri, 6 Aug 2010 04:03:55 +0000 (21:03 -0700)]
r300/compiler: Correctly transform nested loops.
Jerome Glisse [Tue, 10 Aug 2010 15:52:00 +0000 (11:52 -0400)]
r600g: avoid reemiting literal, avoid scheduling empty cs
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
José Fonseca [Tue, 10 Aug 2010 15:32:29 +0000 (16:32 +0100)]
util: Add util_format_srgb().
To convert RGB -> SRGB format.
Brian Paul [Tue, 10 Aug 2010 14:56:20 +0000 (08:56 -0600)]
gallivm: fix non-SSE4.1 case in lp_build_pack2()
Since there's no SSE instruction for this case, fall through to the
generic shuffle code.
Fixes bug fd.o 29468.
Brian Paul [Tue, 10 Aug 2010 14:38:12 +0000 (08:38 -0600)]
mesa: additional program limit assertions
Brian Paul [Tue, 10 Aug 2010 14:35:47 +0000 (08:35 -0600)]
mesa: fix comment typo
nobled [Mon, 9 Aug 2010 21:25:18 +0000 (21:25 +0000)]
gallivm: Fix bitwise operations for floats, division for integers
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>
nobled [Mon, 9 Aug 2010 21:15:08 +0000 (21:15 +0000)]
gallivm: Even more type checking
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>
nobled [Fri, 6 Aug 2010 17:32:29 +0000 (17:32 +0000)]
llvmpipe: Always use floating-point operators for floating-point types
See:
http://bugs.freedesktop.org/29404
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>
Henri Verbeet [Mon, 9 Aug 2010 19:06:02 +0000 (15:06 -0400)]
radeon: Use MESA_FORMAT_SARGB8 for sRGB formats
This can be supported on r600 without using the endian swapper, and is a
better fit for (typical) uploads using GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV
anyway.
Henri Verbeet [Mon, 9 Aug 2010 19:03:27 +0000 (15:03 -0400)]
r600c: Disable alpha test during blits
José Fonseca [Mon, 9 Aug 2010 16:30:33 +0000 (17:30 +0100)]
gallivm: More type checks.
José Fonseca [Mon, 9 Aug 2010 16:26:18 +0000 (17:26 +0100)]
gallivm: Don't call LLVMBuildFNeg on llvm-2.6.
It didn't exist yet.
nobled [Sun, 8 Aug 2010 19:44:54 +0000 (19:44 +0000)]
gallivm: Always use floating-point operators for floating-point types
This fixes the assert added in LLVM 2.8:
assert(getType()->isIntOrIntVectorTy() &&
"Tried to create an integer operation on a non-integer type!")
But it also fixes some subtle bugs, since we should've been doing this
since LLVM 2.6 anyway.
Includes a modified patch from steckdenis@yahoo.fr for the
FNeg instructions in emit_fetch(); thanks for pointing those out.
http://bugs.freedesktop.org/29404
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>