Brian Paul [Fri, 21 Aug 2009 16:24:50 +0000 (10:24 -0600)]
st/mesa: flush bitmap cache if Z value changes
When adding a new bitmap to the cache we have to check if the Z value is
changing and flush first if it is.
This is a modified version of a patch from Justin Dou <justin.dou@intel.com>
Ian Romanick [Mon, 24 Aug 2009 18:59:58 +0000 (11:59 -0700)]
ARB prog parser: Regenerate parser from previous commit
Brian Paul [Mon, 24 Aug 2009 17:05:11 +0000 (11:05 -0600)]
ARB prog parser: use correct context limits
Alex Deucher [Mon, 24 Aug 2009 18:39:25 +0000 (14:39 -0400)]
r600: fix state emit sizes
Chia-I Wu [Sun, 16 Aug 2009 00:51:58 +0000 (08:51 +0800)]
egl_xdri: Revive the driver.
egl_xdri does not compile for some time. This commit revives the
driver. It no longer depends on libGL.so for GLX related functions.
Instead, it uses code from src/glx/ directly. Both DRI and DRI2 are
supported.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Fri, 10 Jul 2009 07:28:55 +0000 (15:28 +0800)]
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>
Chia-I Wu [Tue, 14 Jul 2009 05:17:25 +0000 (13:17 +0800)]
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>
Chia-I Wu [Fri, 10 Jul 2009 09:35:11 +0000 (17:35 +0800)]
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>
Chia-I Wu [Fri, 10 Jul 2009 07:21:42 +0000 (15:21 +0800)]
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>
Brian Paul [Mon, 24 Aug 2009 16:50:07 +0000 (10:50 -0600)]
mesa: _mesa_layout_parameters() returns a boolean value
Maciej Cencora [Mon, 24 Aug 2009 12:52:33 +0000 (14:52 +0200)]
r300: add support for EXT_framebuffer_blit
Cooper Yuan [Mon, 24 Aug 2009 11:50:38 +0000 (19:50 +0800)]
tgsi: Fix build error due to commit
acc7da90
José Fonseca [Mon, 24 Aug 2009 10:40:56 +0000 (11:40 +0100)]
tgsi: Only free temp uregs.
Shorthand.
(cherry picked from commit
de911220bbbe74cff0c79b260456ff36122b7b5b)
José Fonseca [Mon, 24 Aug 2009 10:40:29 +0000 (11:40 +0100)]
tgsi: Pass pipe_context as a parameter to ureg_create_shader.
Simplifies migration to tgsi_ureg.
(cherry picked from commit
f574398c07c41cb8d31249a7186fc178ef7d552a)
Keith Whitwell [Mon, 24 Aug 2009 10:32:06 +0000 (11:32 +0100)]
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.
Cooper Yuan [Mon, 24 Aug 2009 05:56:23 +0000 (13:56 +0800)]
r300g: Set the vector address in the input memory for bypass_vs_clip_and_viewport case
Dave Airlie [Mon, 24 Aug 2009 04:56:40 +0000 (00:56 -0400)]
r600: scissor updates for dri2
Pulled from Dave's WIP patch.
Dave Airlie [Mon, 24 Aug 2009 04:47:34 +0000 (00:47 -0400)]
r600: switch to common cs functions
needed for dri2. Pulled from Dave's WIP patch.
Alex Deucher [Mon, 24 Aug 2009 04:33:33 +0000 (00:33 -0400)]
r600: map 16 VS outputs
Should cover everything exported from the VS
Alex Deucher [Mon, 24 Aug 2009 03:56:45 +0000 (23:56 -0400)]
r600: fix logic copy paste error
Spotted by airlied.
Alex Deucher [Sun, 23 Aug 2009 20:22:01 +0000 (16:22 -0400)]
radeon: add radeon_cs_write_table to the legacy path
Alex Deucher [Sun, 23 Aug 2009 20:06:31 +0000 (16:06 -0400)]
r600: bump reloc_chunk size
This fixes openarena reloc errors. This needs to be
made more dynamic.
Alex Deucher [Sun, 23 Aug 2009 19:32:42 +0000 (15:32 -0400)]
r600: fix count for CB/DB target state
Maciej Cencora [Sun, 23 Aug 2009 19:11:55 +0000 (21:11 +0200)]
r300: fix a typo
Maciej Cencora [Sun, 23 Aug 2009 19:11:13 +0000 (21:11 +0200)]
radeon: use proper macro
Maciej Cencora [Sun, 23 Aug 2009 19:02:12 +0000 (21:02 +0200)]
radeon: use bo_is_idle interface for checking if OQ result is available
Maciej Cencora [Wed, 19 Aug 2009 21:35:00 +0000 (23:35 +0200)]
r300: minor optimization
use properly implemented OUT_BATCH_TABLE where possible
Ian Romanick [Sun, 23 Aug 2009 02:19:40 +0000 (19:19 -0700)]
ARB prog lexer: Fix lexer to eat both DOS and Unix line endings
Alex Deucher [Sun, 23 Aug 2009 17:41:43 +0000 (13:41 -0400)]
r600: use persistent bos for shaders
Alex Deucher [Sun, 23 Aug 2009 16:59:09 +0000 (12:59 -0400)]
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.
Pauli Nieminen [Sun, 23 Aug 2009 11:02:46 +0000 (14:02 +0300)]
radeon: Fix compilation with legacy memory manager.
Pauli Nieminen [Thu, 20 Aug 2009 14:57:37 +0000 (17:57 +0300)]
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>
Alex Deucher [Sat, 22 Aug 2009 22:02:03 +0000 (18:02 -0400)]
r600: make state emit more fine grained
Gives a nice speed boost in most apps since
we only emit what state we need.
Renato Caldas [Sat, 22 Aug 2009 19:22:03 +0000 (20:22 +0100)]
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>
Luo Jinghua [Sat, 22 Aug 2009 05:52:46 +0000 (13:52 +0800)]
ARB prog parser: include imports.h to kill some compiler warnings
Alex Deucher [Sat, 22 Aug 2009 19:03:41 +0000 (15:03 -0400)]
r600: move full state to radeon state atoms
Alex Deucher [Sat, 22 Aug 2009 15:44:05 +0000 (11:44 -0400)]
r600: add support for RS880
Ian Romanick [Sat, 22 Aug 2009 08:35:12 +0000 (01:35 -0700)]
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.
Jakob Bornecrantz [Sat, 22 Aug 2009 00:35:10 +0000 (01:35 +0100)]
st/dri: Remove some debug prints
Jakob Bornecrantz [Sat, 22 Aug 2009 01:12:21 +0000 (02:12 +0100)]
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.
Jakob Bornecrantz [Sat, 22 Aug 2009 01:11:58 +0000 (02:11 +0100)]
st/dri: Fix frontbuffer rendering with DRI2
Jakob Bornecrantz [Fri, 21 Aug 2009 22:20:46 +0000 (23:20 +0100)]
st/xorg: Handle fake fronts correctly for pixmaps
Jakob Bornecrantz [Sat, 22 Aug 2009 01:06:29 +0000 (02:06 +0100)]
i915g: Remove bad assert on fence
Michel Dänzer [Fri, 21 Aug 2009 23:33:37 +0000 (01:33 +0200)]
glx/dri2: Always use X drawable ID for DRI2 protocol.
Fixes protocol errors in cases where the GLX ID is different.
Michel Dänzer [Fri, 21 Aug 2009 23:24:39 +0000 (01:24 +0200)]
Fix r300 VBO support build on big endian.
Alex Deucher [Fri, 21 Aug 2009 21:41:43 +0000 (17:41 -0400)]
r600: better default state size.
Hopefully suokko's emit size impovements will
land soon.
Ian Romanick [Fri, 21 Aug 2009 18:34:30 +0000 (11:34 -0700)]
Merge branch 'asm-shader-rework-1'
Brian Paul [Fri, 21 Aug 2009 17:04:01 +0000 (11:04 -0600)]
radeon: fix incorrect loop limit (warned by -O3)
Brian Paul [Fri, 21 Aug 2009 17:03:30 +0000 (11:03 -0600)]
glx: initialize some local vars to silence warnings with -O3
Chia-I Wu [Fri, 21 Aug 2009 05:55:30 +0000 (13:55 +0800)]
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>
Chia-I Wu [Fri, 21 Aug 2009 05:53:36 +0000 (13:53 +0800)]
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>
Chia-I Wu [Thu, 20 Aug 2009 11:35:28 +0000 (19:35 +0800)]
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>
Chia-I Wu [Wed, 19 Aug 2009 05:00:25 +0000 (13:00 +0800)]
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>
Jakob Bornecrantz [Fri, 21 Aug 2009 13:02:48 +0000 (15:02 +0200)]
st/egl: Add support for drmModeDirtyFB command if found
Pauli Nieminen [Thu, 20 Aug 2009 15:57:35 +0000 (18:57 +0300)]
radeon: Add comment to explain logic for freeing dma buffers.
Ian Romanick [Fri, 21 Aug 2009 01:29:41 +0000 (18:29 -0700)]
ARB prog parser: Revert part of previous change to constant parsing
The commit "ARP prog parser: Implement the spec, not what makes sense"
broke the parsing of scalar constants. This commit reverts that part
of that commit. Now vp_swizzle.c passes.
Alex Deucher [Thu, 20 Aug 2009 22:55:41 +0000 (18:55 -0400)]
r600: convert to using common radeon state atoms
switches more state handling to common code. We need
should be more fine grained with the state atoms
eventually.
Alex Deucher [Thu, 20 Aug 2009 21:20:27 +0000 (17:20 -0400)]
r600: improve state emission
Slowing migrating to atom based system like
the other radeon drivers.
Alex Deucher [Thu, 20 Aug 2009 20:07:07 +0000 (16:07 -0400)]
r600: split state emit into block specific functions
We probably want to go finer grained eventually, but
this is a good start.
Brian Paul [Thu, 20 Aug 2009 20:30:08 +0000 (14:30 -0600)]
progs/glsl: report compile/link times in shtest.c
Brian Paul [Thu, 20 Aug 2009 20:29:26 +0000 (14:29 -0600)]
progs/util: added GetShaderCompile/LinkTime() to get compilation/link times
Brian Paul [Thu, 20 Aug 2009 20:19:35 +0000 (14:19 -0600)]
progs/glsl: update multitex.shtest for new texture syntax
Brian Paul [Thu, 20 Aug 2009 20:19:01 +0000 (14:19 -0600)]
progs/glsl: update shtest.c to handle 1D/3D/CUBE/RECT textures
Brian Paul [Thu, 20 Aug 2009 16:58:05 +0000 (10:58 -0600)]
progs/glsl: tweaks to shtest.c
1. Larger sphere to match cube size
2. Allow -geometry option to override window size
3. Cube samplers
Christoph Bumiller [Thu, 20 Aug 2009 19:39:02 +0000 (21:39 +0200)]
nv50: use VTX_ATTR_nF for constant vtxelts
Christoph Bumiller [Thu, 20 Aug 2009 19:30:49 +0000 (21:30 +0200)]
nv50: set vertex buffer limits
Christoph Bumiller [Thu, 20 Aug 2009 19:28:28 +0000 (21:28 +0200)]
nv50: modify vbo format to hw translation, add BGRA swizzle
Jakob Bornecrantz [Thu, 20 Aug 2009 15:33:56 +0000 (17:33 +0200)]
st/egl: Open the first drm node
At least its better then hardcoded to i915
Brian Paul [Thu, 20 Aug 2009 16:44:32 +0000 (10:44 -0600)]
progs/glsl: more comments in shtest.c
Brian Paul [Thu, 20 Aug 2009 16:43:48 +0000 (10:43 -0600)]
tgsi: when printing/dumping programs indent loops and conditionals
Brian Paul [Thu, 20 Aug 2009 16:34:45 +0000 (10:34 -0600)]
tgsi: check for SOA dependencies in SSE and PPC code generators
Fall back to interpreter for now. This doesn't happen very often.
Brian Paul [Thu, 20 Aug 2009 16:28:22 +0000 (10:28 -0600)]
tgsi: handle SOA dependencies for MOV/SWZ
SOA dependencies can happen when a register is used both as a source and
destination and the source is swizzled. For example:
MOV T, T.yxwz; would expand into:
MOV t0, t1;
MOV t1, t0;
MOV t2, t3;
MOV t3, t2;
The second instruction will produce the wrong result since we wrote to t0
in the first instruction. We need to use an intermediate temporary to fix
this.
This will take more work to fix for all TGSI instructions. This seems to
happen with MOV instructions more than anything else so fix that case now
and warn on others.
Fixes piglit glsl-vs-loop test (when not using SSE). See bug 23317.
Brian Paul [Thu, 20 Aug 2009 16:25:42 +0000 (10:25 -0600)]
tgsi: added tgsi_full_instruction::Flags field
Users of the parser can make use of this.
Alex Deucher [Thu, 20 Aug 2009 16:10:42 +0000 (12:10 -0400)]
r600: try and get everything in the draw in one IB
fixes corruption issues with apps like teapot and
geartrain.
Alex Deucher [Thu, 20 Aug 2009 15:33:41 +0000 (11:33 -0400)]
r600: move misc regs from general state
These regs don't use the SET_CONTEXT_REG packet,
so they weren't getting set correctly.
Brian Paul [Thu, 20 Aug 2009 14:10:14 +0000 (08:10 -0600)]
mesa: add GL_DEPTH_STENCIL to glCopyPixels error check
Plus, add a comment about 'type' error checking.
See bug 19087.
Alex Deucher [Thu, 20 Aug 2009 07:19:58 +0000 (03:19 -0400)]
r600: rework emit code
make sure we allocate enough space for relocs
Pauli Nieminen [Wed, 19 Aug 2009 20:11:14 +0000 (23:11 +0300)]
radeon: Update regulary cs processing info from kernel.
This fixes problem that dma buffers were leaking in dri1 mode.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Brian Paul [Wed, 19 Aug 2009 19:17:03 +0000 (13:17 -0600)]
gallium: rename copy/fill_rect utility functions
Brian Paul [Wed, 19 Aug 2009 19:16:41 +0000 (13:16 -0600)]
gallium: fix tags target in Makefile.template
Alex Deucher [Wed, 19 Aug 2009 17:06:53 +0000 (13:06 -0400)]
radeon: fix typo in last dma patch
Eric Anholt [Wed, 19 Aug 2009 16:30:47 +0000 (09:30 -0700)]
intel: Fix failure to commit -a --amend before last push.
Eric Anholt [Wed, 19 Aug 2009 01:48:54 +0000 (18:48 -0700)]
intel: Align cubemap texture height to its padding requirements.
Eric Anholt [Thu, 13 Aug 2009 02:40:27 +0000 (19:40 -0700)]
intel: Align untiled region height to 2 according to 965 docs.
This may or may not be required pre-965, but it doesn't seem unlikely, and
I'd rather be safe.
Pauli Nieminen [Wed, 19 Aug 2009 12:20:15 +0000 (15:20 +0300)]
radeon: Add debug output for dma buffer object numbers.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Pauli Nieminen [Wed, 19 Aug 2009 11:47:25 +0000 (14:47 +0300)]
radeon: Fix dma buffer object pool to scale object sizes.
This fixes problems when application is using large vertex arrays for drawing.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Alex Deucher [Wed, 19 Aug 2009 14:31:17 +0000 (10:31 -0400)]
r600: minor cleanup
Brian Paul [Wed, 19 Aug 2009 14:58:38 +0000 (08:58 -0600)]
progs/xdemos: add multictx to .gitignore
José Fonseca [Mon, 17 Aug 2009 16:48:34 +0000 (17:48 +0100)]
tgsi: Add missing include.
(cherry picked from commit
d2787c02c130b1fe20d0c032d468622f2fdaef79)
José Fonseca [Tue, 18 Aug 2009 14:25:33 +0000 (15:25 +0100)]
tgsi: Fix typo in ureg constant creation.
(cherry picked from commit
aa40c9abc7787fdf46cb661a4d0bb8bec513fc63)
Keith Whitwell [Fri, 14 Aug 2009 17:12:08 +0000 (18:12 +0100)]
st/xlib: remove a couple more 'fake' references
Keith Whitwell [Fri, 14 Aug 2009 17:00:49 +0000 (18:00 +0100)]
st/xlib: remove dead ungrab helper
Keith Whitwell [Wed, 19 Aug 2009 11:00:24 +0000 (12:00 +0100)]
tgsi: silence compiler warning
Keith Whitwell [Wed, 19 Aug 2009 11:00:03 +0000 (12:00 +0100)]
tgsi: remove unused function argument
Keith Whitwell [Wed, 19 Aug 2009 10:54:06 +0000 (11:54 +0100)]
tgsi: add missing functionality to support instructions with labels
Could previously emit opcodes with label arguments, but was no way to
patch them with the actual destinations of those labels.
Adds two functions:
ureg_get_instruction_number - to get the id of the next instruction
to be emitted
ureg_fixup_label - to patch an emitted label to point to a given
instruction number.
Need some more complex examples than u_simple_shader, so far this has
only been compile-tested.
Corbin Simpson [Wed, 19 Aug 2009 04:22:30 +0000 (21:22 -0700)]
r300g: Force off ZTOP optimizations for now.
Corbin Simpson [Wed, 19 Aug 2009 01:14:22 +0000 (18:14 -0700)]
r300g: Utilize DONTBLOCK.
Also ALGYRHYTHMS.
Corbin Simpson [Wed, 19 Aug 2009 01:11:46 +0000 (18:11 -0700)]
radeon-gallium: Oh, look, we *do* already support DONTBLOCK.
Well, okay, the kernel doesn't, but that's no excuse for us! :3
Corbin Simpson [Wed, 19 Aug 2009 00:52:03 +0000 (17:52 -0700)]
r300g: Massively cleanup OQ.
Still broken, but compiles cleaner, behaves better, etc.
Corbin Simpson [Wed, 19 Aug 2009 00:49:58 +0000 (17:49 -0700)]
r300g: Add high_second_pipe cap for R3xx chipsets.
This name is totally subject to change if ever I need to separate R3xx
for some other reason.