Commit graph

25254 commits

Author SHA1 Message Date
Chia-I Wu
17090cf3ef glapi: Fix a possible race in getting current context/dispatch.
There is a possbile race that _glapi_Context is reset by another thread
after it is tested in GET_CURRENT_CONTEXT but before it is returned.  We
definitely do not want a lock here to solve the race.  To have correct
results even under a race, no other threads should reset _glapi_Context
(or _glapi_Dispatch).

This patch adds a new global variable _glapi_SingleThreaded.  Since
_glapi_Context or _glapi_Dispatch are no longer reset,
_glapi_SingleThreaded is tested instead, before accessing them.

DRI drivers compiled with this patch applied will not work with existing
libGL.so because of the missing new symbol.  If this turns out to be a
real problem, this patch should be reverted.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-24 11:46:15 -06:00
Chia-I Wu
3076d1617d glapi: Static mutex does not work on WIN32_THREADS.
This re-introduces the race in _glapi_check_multithread, but avoids a
crash on windows.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-24 11:46:15 -06:00
Chia-I Wu
fc2feea685 glapi: Fix a race in accessing context/dispatch TSD.
If multiple threads set/get a TSD at roughly same time for the first
time, glthread might (wrongly) initialize it more than once.  This patch
solves the race by initializing context/dispatch TSDs early.

Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-24 11:45:57 -06:00
Chia-I Wu
99939982ec glapi: Protect _glapi_check_multithread by a mutex.
Multiple threads might call _glapi_check_multithread at roughly the same
time.  It is possbile that all of them are wrongly regarded as firstCall
if there is no mutex.  This bug causes xeglthreads to crash sometimes.

Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-24 11:45:57 -06:00
Brian Paul
53db19b57d mesa: _mesa_layout_parameters() returns a boolean value 2009-08-24 10:50:07 -06:00
Maciej Cencora
ed14a4cb7b r300: add support for EXT_framebuffer_blit 2009-08-24 14:52:33 +02:00
Cooper Yuan
a88678d3ee tgsi: Fix build error due to commit acc7da90 2009-08-24 19:50:38 +08:00
José Fonseca
02c523dfbb tgsi: Only free temp uregs.
Shorthand.
(cherry picked from commit de911220bbbe74cff0c79b260456ff36122b7b5b)
2009-08-24 12:11:24 +01:00
José Fonseca
acc7da9035 tgsi: Pass pipe_context as a parameter to ureg_create_shader.
Simplifies migration to tgsi_ureg.
(cherry picked from commit f574398c07c41cb8d31249a7186fc178ef7d552a)
2009-08-24 12:11:22 +01:00
Keith Whitwell
b570a7e6b6 tgsi: add generic instruction builder
When translating an incoming shader (rather than building one from scratch)
it's preferable to be able to call a single, generic instruction emitter
rather than figuring out which of the opcode-specific functions to call.
2009-08-24 11:33:38 +01:00
Cooper Yuan
7ee4f32dcd r300g: Set the vector address in the input memory for bypass_vs_clip_and_viewport case 2009-08-24 13:56:23 +08:00
Dave Airlie
2b29d21018 r600: scissor updates for dri2
Pulled from Dave's WIP patch.
2009-08-24 00:56:40 -04:00
Dave Airlie
f758a8bf2e r600: switch to common cs functions
needed for dri2.  Pulled from Dave's WIP patch.
2009-08-24 00:47:34 -04:00
Alex Deucher
436fb34369 r600: map 16 VS outputs
Should cover everything exported from the VS
2009-08-24 00:33:33 -04:00
Alex Deucher
d6f7ebd603 r600: fix logic copy paste error
Spotted by airlied.
2009-08-23 23:56:45 -04:00
Alex Deucher
4484ce9c7b radeon: add radeon_cs_write_table to the legacy path 2009-08-23 16:22:01 -04:00
Alex Deucher
becb50f84d r600: bump reloc_chunk size
This fixes openarena reloc errors.  This needs to be
made more dynamic.
2009-08-23 16:06:31 -04:00
Alex Deucher
670bd47df9 r600: fix count for CB/DB target state 2009-08-23 15:35:55 -04:00
Maciej Cencora
e1801d861a r300: fix a typo 2009-08-23 21:30:43 +02:00
Maciej Cencora
bcbe27d0ca radeon: use proper macro 2009-08-23 21:11:13 +02:00
Maciej Cencora
7e7f0f61bf radeon: use bo_is_idle interface for checking if OQ result is available 2009-08-23 21:09:55 +02:00
Maciej Cencora
4aadda5f66 r300: minor optimization
use properly implemented OUT_BATCH_TABLE where possible
2009-08-23 20:21:48 +02:00
Ian Romanick
9b70c33e73 ARB prog lexer: Fix lexer to eat both DOS and Unix line endings 2009-08-23 11:15:32 -07:00
Alex Deucher
7a05a4c65c r600: use persistent bos for shaders 2009-08-23 13:41:43 -04:00
Alex Deucher
41934be254 r600: always emit CB base
Not doing so seems to cause lock-ups or rendering problems
on some chips.  I think there is an logic issue related to
CB and VGT on some chips.  We ran into similar issues in
r600_demo IIRC.
2009-08-23 13:05:52 -04:00
Pauli Nieminen
b34695375e radeon: Fix compilation with legacy memory manager. 2009-08-23 14:02:46 +03:00
Pauli Nieminen
66bbafb6f9 radeon: Check from kernel if dma buffer is idle.
This makes sure that objects are leaving wait list only when they are processed by gpu.

Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
2009-08-23 13:39:32 +03:00
Alex Deucher
bf6d0ae598 r600: make state emit more fine grained
Gives a nice speed boost in most apps since
we only emit what state we need.
2009-08-22 18:03:26 -04:00
Renato Caldas
08e91e0315 shader: fix compilation warnings
This patch fixes some "implicit declaration of function" compilation
errors/warnings on the new shader code.

Signed-off-by: Renato Caldas <seventhguardian@gmail.com>
2009-08-22 14:00:23 -07:00
Luo Jinghua
523cb80d0f ARB prog parser: include imports.h to kill some compiler warnings 2009-08-22 13:59:48 -07:00
Alex Deucher
180c304943 r600: move full state to radeon state atoms 2009-08-22 15:03:41 -04:00
Alex Deucher
17813931db r600: add support for RS880 2009-08-22 11:45:40 -04:00
Ian Romanick
c87ef0870a i965: Implement frag prog DPH like DP4
DPH can output to any component, not just to X.  This allows fpalu.c
to run without hitting the assertion in emit_dph.
2009-08-22 01:35:12 -07:00
Jakob Bornecrantz
54fb71b863 st/dri: Remove some debug prints 2009-08-22 02:16:02 +01:00
Jakob Bornecrantz
a3e59b9d06 st/dri: Find out if the drawable is a pixmap
Part of this code is disabled since no performance gains
	where detected with it enabled.

	This code only detects if it is a pixmap that it is
	rendering to on the st/xorg DDX since it sets the fake
	front to the same handle as front.
2009-08-22 02:16:02 +01:00
Jakob Bornecrantz
6237ac2412 st/dri: Fix frontbuffer rendering with DRI2 2009-08-22 02:16:01 +01:00
Jakob Bornecrantz
29165a2fcc st/xorg: Handle fake fronts correctly for pixmaps 2009-08-22 02:10:18 +01:00
Jakob Bornecrantz
a469b4c459 i915g: Remove bad assert on fence 2009-08-22 02:09:59 +01:00
Michel Dänzer
029e643b24 glx/dri2: Always use X drawable ID for DRI2 protocol.
Fixes protocol errors in cases where the GLX ID is different.
2009-08-22 01:33:37 +02:00
Michel Dänzer
6b1f144d9b Fix r300 VBO support build on big endian. 2009-08-22 01:24:39 +02:00
Alex Deucher
bf5d6cf455 r600: better default state size.
Hopefully suokko's emit size impovements will
land soon.
2009-08-21 17:46:32 -04:00
Ian Romanick
4cfb1b880b Merge branch 'asm-shader-rework-1' 2009-08-21 11:34:30 -07:00
Brian Paul
ef98eed0a9 radeon: fix incorrect loop limit (warned by -O3) 2009-08-21 11:04:37 -06:00
Brian Paul
49c0825655 glx: initialize some local vars to silence warnings with -O3 2009-08-21 11:04:37 -06:00
Chia-I Wu
b1f156f0ec egl: Make _eglChooseDriver return the filename of the driver.
The real difference is that the driver suffix is now appended.  This
also fixes an annoying bug that EGL_DRIVER could not specify the path to
a driver because a suffix was always appended.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-21 08:34:34 -06:00
Chia-I Wu
5a459d58fc egl: Remove dependency on libX11.
libX11 is used to determine the screen number, which is in turned used
to determine the DRI driver.  However, the sysfs interface for
determining the DRI driver is gone, and no working driver depends on
this mechanism.

Display string parsing is moved to a new function,
_eglSplitDisplayString.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-21 08:34:34 -06:00
Chia-I Wu
1f871a4d15 egl_softpipe: Do not flush unlinked context.
An unlinked context is destroyed after _eglMakeCurrent.  Flushing such
context would cause segfault.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-21 08:34:34 -06:00
Chia-I Wu
408db29792 egl: Check for null display in handle checking.
The display may be NULL when checking a handle.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-21 08:34:34 -06:00
Jakob Bornecrantz
9b3e5df900 st/egl: Add support for drmModeDirtyFB command if found 2009-08-21 15:04:21 +02:00
Pauli Nieminen
0c0cea250d radeon: Add comment to explain logic for freeing dma buffers. 2009-08-21 16:40:14 +03:00