Commit graph

30020 commits

Author SHA1 Message Date
Marek Olšák
ceafb391e6 r300g: fix glean/pointSprite using lodbias correction 2010-05-08 23:03:45 +02:00
Marek Olšák
71584d0cc7 r300g: pass depth texture swizzle to the compiler if compare mode is enabled 2010-05-08 23:03:45 +02:00
Marek Olšák
78e881368b r300g: respect compare mode regardless of sampler type 2010-05-08 23:03:45 +02:00
Marek Olšák
e812c0439c r300/compiler: fake equal/notequal for shadow samplers
This is actually better than a real implementation, which would be useless
due to inaccuracy (I know because I've tried to implement it).
2010-05-08 23:03:45 +02:00
Marek Olšák
35a6df5730 r300/compiler: use perspective division only for TXP in shadow samplers 2010-05-08 23:03:44 +02:00
Marek Olšák
0cbe1e6c14 r300/compiler: make shadow sampler codegen more readable, add comments 2010-05-08 23:03:44 +02:00
Marek Olšák
39d0ece5f5 r300/compiler: shorten RC_*SWIZZLE* expressions 2010-05-08 23:03:44 +02:00
Marek Olšák
eb9dc2595f r300/compiler: generalize depth texture mode to support arbitrary swizzles 2010-05-08 23:03:44 +02:00
Marek Olšák
c637f38e70 r300/compiler: fix LIT instruction case 0^0 = 1 2010-05-08 23:03:44 +02:00
Marek Olšák
da180a8d34 r300g: consolidate common render code into one function
This reduces redundant code by moving:
- CS space reservation
- buffer validation
- dirty state emission
- index bias emission
- AOS emission
into r300_prepare_for_rendering.
2010-05-08 23:03:44 +02:00
José Fonseca
e9fc5b463f gallivm: The the JIT engine to use our sinf()/cosf() on Windows.
A quick hack to get the right results, as there are many DCT tests
which use these opcodes to generate data to test other opcodes.
2010-05-08 18:36:22 +01:00
José Fonseca
2d91903882 gallivm: Fix BREAK/CONT translation.
The cont_mask must be restored and exec mask recomputed in order to decide
whether to repeat the loop or not.

Unlike the continue mask, the break_mask must be preserved across loop
iterations.

Fixes several VShader DCT cases, and no regressions with glean.
2010-05-08 16:17:09 +01:00
José Fonseca
852f735236 llvmpipe: Cover more formats in unit test. 2010-05-08 13:18:14 +01:00
José Fonseca
36e28d42b3 gallivm: Fix segfaul when inserting allocas in an empty function. 2010-05-08 13:02:46 +01:00
José Fonseca
2c2debaea7 gallivm: Centralize SoA swizzling into a single place. 2010-05-08 12:52:50 +01:00
José Fonseca
ff6c78f44f gallivm: Support predicates. 2010-05-08 12:50:52 +01:00
José Fonseca
6e47d4f889 llvmpipe: Match p_screen.h's function prototype. 2010-05-08 10:14:35 +01:00
Vinson Lee
cc346b51fa llvmpipe: Remove unnecessary header. 2010-05-08 00:37:38 -07:00
Chia-I Wu
56530c9097 egl: Build drivers in $(TOP)/$(LIB_DIR)/egl.
There are enough EGL modules that they deserve a subdirectory, to avoid
polluting $(TOP)/$(LIB_DIR).
2010-05-08 14:58:59 +08:00
Chia-I Wu
63ab2509bf gallium: Add egl-apis target.
The new target installs client API modules to EGL_DRIVER_INSTALL_DIR.
They are used by st/egl.

The client APIs are built from OpenGL and OpenVG state trackers.  For
this to work, st/vega is modified to produce a static library,
libvega.a, instead.  st/es is also not needed any more.  It is removed
and --with-state-trackers=es is replaced by --enable-gles-overlay.

As st/egl now has its own client API modules, this solves the ABI issue
between st/egl and client APIs, as long as the client API modules are
distributed with st/egl.  Plus, this allows st/egl to support OpenGL
with non-Gallium libGL.so.
2010-05-08 14:57:21 +08:00
Chia-I Wu
559046e791 mapi: Add install rules for OpenGL ES.
Move the install rules for OpenGL ES from src/mesa/Makefile to mapi.
2010-05-08 14:55:57 +08:00
Chia-I Wu
bc918efb56 mapi: Install .pc file for OpenVG. 2010-05-08 14:55:57 +08:00
Chia-I Wu
b0749fd09b mapi: Update vgapi to build libOpenVG.so.
Unlike the one produced by st/vega, this is a dispatch-only library.
2010-05-08 14:55:57 +08:00
Chia-I Wu
3e1ccb2508 mapi: Merge src/gles/.
Remove src/gles and have mapi/{es1api,es2api} build libGLESv1_CM.so and
libGLESv2.so.
2010-05-08 14:55:57 +08:00
Chia-I Wu
874ccd5d83 Define OpenGL ES and OpenVG library names.
Define <API>_LIB, <API>_LIB_NAME, <API>_LIB_GLOB, and some other
variables in the configs.  Fix a typo in glesv1_cm.pc.in where an
inexistent variable is used.
2010-05-08 14:55:52 +08:00
Chia-I Wu
2773f888dc egl_g3d: Check external modules for client APIs first.
dlopen api_<API>.so before dlopening the process itself in case the
client APIs are implemented in external modules.
2010-05-08 14:54:13 +08:00
Chia-I Wu
e8ba2812e6 egl: Add _eglSearchPathForEach.
The function can be used by a driver to check each search path of EGL.
2010-05-08 14:54:13 +08:00
Brian Paul
74fb08018a gallium/draw: additional comments in the clipping code 2010-05-07 17:13:16 -06:00
Brian Paul
3965bc5d22 mesa: remove driver hooks for GetFloat/Integer/Doublev, etc
Once upon a time some drivers hooked into these for GL_HP_occlusion_test
and GL_OES_read_format.  They're not being used anymore so get rid of them.
2010-05-07 17:10:05 -06:00
Kristian Høgsberg
db178af09d glx: Get GLX_SCREEN first in __glXQueryContextInfo()
And lookup the GLX screen for the context.  Otherwise we'll end up
jumping through a NULL-pointer once we try to look up the visual
or config for the shared context.

https://bugs.freedesktop.org/show_bug.cgi?id=14245
2010-05-07 18:40:54 -04:00
Jon TURNEY
f350b10617 mesa: fpclassify dummy definition is not needed on cygwin
fpclassify is provided by math.h

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Signed-off-by: Brian Paul <brianp@vmware.com>
2010-05-07 14:36:13 -06:00
Brian Paul
12d74d6ba1 tgis: fix SOA aliasing for MUL instruction in SSE codegen
Part of a fix for piglit trinity-fp1 test failure.
2010-05-07 10:40:59 -06:00
Vinson Lee
50c940707e apple: Move glapi to mapi.
This was missed in commit 296adbd545.
Fixes darwin build.
2010-05-06 23:39:33 -07:00
José Fonseca
5065d33276 mapi/glapi: Don't allocate a page for every function on windows. 2010-05-07 07:31:44 +01:00
José Fonseca
5569faf05a mapi: Avoid Data Execution Prevention on windows. 2010-05-07 06:57:11 +01:00
José Fonseca
80c8c891c9 wgl: Add mapi to includes. 2010-05-07 06:45:20 +01:00
Chia-I Wu
de3994076e mapi: Add x86-64 dispatcher. 2010-05-07 10:41:12 +08:00
Chia-I Wu
56eb5d7e85 mapi: Add x86 dispatcher. 2010-05-07 10:41:12 +08:00
Chia-I Wu
75143ef055 st/vega: Use vgapi.
Rename vgFooBar to vegaFooBar and use vgapi as the dispatcher.  This
makes sure there is always a current context when the internal functions
are called.  And eglGetProcAddress is finally supported.
2010-05-07 10:41:12 +08:00
Chia-I Wu
bdc4504252 mapi: Add vgapi.
vgapi is a dispatcher for OpenVG.
2010-05-07 10:41:12 +08:00
Chia-I Wu
d4589d3816 mapi: Add a generic C dispatcher.
The idea is to have an API generate a header using mapi_abi.py.  The API
can then use the header to build a dispatcher.
2010-05-07 10:41:12 +08:00
Chia-I Wu
a73c6540d9 mapi: Add mapi and share the code with glapi.
Specifically, move all or most of

      glapi/glapi.c         to mapi/u_current.c,
      glapi/glapi_execmem.c to mapi/u_execmem.c,
      glapi/glthread.[ch]   to mapi/u_thread.[ch]

and remove their dependencies on core Mesa headers.
2010-05-07 10:41:11 +08:00
Chia-I Wu
296adbd545 glapi: Move to src/mapi/.
Move glapi to src/mapi/{glapi,es1api,es2api}.
2010-05-07 10:41:11 +08:00
Chia-I Wu
73ded0624d glapi: Move assembly dispatchers back into glapi/. 2010-05-07 10:41:10 +08:00
Török Edwin
4d52a25326 gallivm: Require SSE2 for draw_llvm/llvmpipe due to LLVM PR6960.
Note that this also requires X86 for llvm, if llvmpipe/draw_llvm works
on PPC then the condition should be extended to include && x86.

Signed-off-by: Török Edwin <edwintorok@gmail.com>
Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-05-06 22:43:37 +01:00
Brian Paul
1fce9d58cc softpipe: fix dangling references to shaders in the TGSI executor
If a shader was bound to the fragment shader TGSI executor and it was
then deleted and a new shader was allocated at the same address as the
old shader, the new fragment shader would not get properly bound to
the TGSI machine and we'd wind up using the old one.

This would not have been a problem if shaders were refcounted.

Now the TGSI machine is owned by the context rather than the quad
pipeline's shader stage so that the softpipe_delete_fs_state()
function can access it.

Fixes sporadic failures of the piglit fp-long-alu test (fd.o bug 27989).
2010-05-06 15:19:02 -06:00
Brian Paul
4b274f311c tgsi: make SSE ADD instruction SOA-safe
To properly execute an instruction such as "ADD tmp, tmp.wzyx, foo;"
with SOA we (sometimes) need to put the results into temporaries before
writing the results to the destination register.

This patch fixes the ADD instruction but this needs to be done for
many more instructions.

Helps to fix piglit fp-long-alu test (fd.o bug 27989).
2010-05-06 15:19:02 -06:00
Brian Paul
895ee712ba tgsi: code refactoring 2010-05-06 15:19:02 -06:00
Brian Paul
92d88ccd9a tgsi: added tgsi_get_processor_name() 2010-05-06 15:19:02 -06:00
Brian Paul
c8f0e805a9 tgsi: fix tgsi_exec_machine_bind_shader() to handle NULL tokens, samplers
This lets us unbind a shader from the tgsi_exec_machine.  Since
shaders aren't ref counted we need this to properly clean up when
deleting shaders elsewhere.
2010-05-06 15:19:02 -06:00