Zack Rusin [Tue, 25 Aug 2009 18:01:58 +0000 (14:01 -0400)]
exa: add basic code to cache vertex and fragment shaders
Zack Rusin [Tue, 25 Aug 2009 17:22:20 +0000 (13:22 -0400)]
exa: check whether the op is accelerated
Pauli Nieminen [Tue, 25 Aug 2009 16:28:00 +0000 (19:28 +0300)]
radeon: Fix all compiler warnings.
Brian Paul [Tue, 25 Aug 2009 15:42:25 +0000 (09:42 -0600)]
mesa: remove -I$(TOP)/src/gallium/drivers from sources.mak
Core Mesa and the state tracker do not depend on any gallium drivers.
Brian Paul [Tue, 25 Aug 2009 15:37:43 +0000 (09:37 -0600)]
Revert "glapi: Fix a possible race in getting current context/dispatch."
This reverts commit
17090cf3efb0db8fa01b502a9c0df27cbd1a67da.
We're reverting this because it causes ABI breakage with the X server.
Maybe re-attempt with another patch.
Zack Rusin [Tue, 25 Aug 2009 13:55:42 +0000 (09:55 -0400)]
xorg: revert bad merge
Michel Dänzer [Tue, 25 Aug 2009 13:39:05 +0000 (15:39 +0200)]
Add support for building the Xorg state tracker with scons.
scons ... statetrackers=xorg
Pauli Nieminen [Tue, 25 Aug 2009 02:03:58 +0000 (05:03 +0300)]
Revert "glx: Make drawables persistent untill they are changed by glXMakeCurrent"
This commit was not mean to end in to master yet. It is still queston if this
right design to fix the problem.
This reverts commit
45e3be3c07f543f3f2869ba7750ba4695cd25122.
Pauli Nieminen [Mon, 24 Aug 2009 23:36:13 +0000 (02:36 +0300)]
Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa into r600_state_predict
Maciej Cencora [Mon, 24 Aug 2009 23:27:40 +0000 (01:27 +0200)]
r300: fix condition logic
The s3tc extensions are properly enabled now, when force_s3tc_enable option is set in driconf.
Maciej Cencora [Mon, 24 Aug 2009 23:26:28 +0000 (01:26 +0200)]
r300: set proper CS section size
Pauli Nieminen [Mon, 24 Aug 2009 23:23:52 +0000 (02:23 +0300)]
radeon/r200/r300/r600: Warn if we emit more than prediction was.
Prediction code making too small prediction may cause space check aserttion
failure later in rendering. So warning about any failure to predict correctly
should be fixed.
Zack Rusin [Mon, 24 Aug 2009 22:42:16 +0000 (18:42 -0400)]
xorg: fix compilation
Zack Rusin [Mon, 24 Aug 2009 22:38:46 +0000 (18:38 -0400)]
xorg: start on code accelerating render
Alex Deucher [Thu, 20 Aug 2009 14:56:35 +0000 (10:56 -0400)]
r300: add support for getting Z pipe info from drm
Needed for occulsion queries on rv530 chips
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Alex Deucher [Mon, 24 Aug 2009 21:41:01 +0000 (17:41 -0400)]
r600: code cleanup
Dave Airlie [Mon, 24 Aug 2009 21:20:37 +0000 (07:20 +1000)]
radeon: fix fbo size calculation to after pitch
Zack Rusin [Mon, 24 Aug 2009 20:39:25 +0000 (16:39 -0400)]
Merge branch 'master' of ssh://zack@git.freedesktop.org/git/mesa/mesa
Zack Rusin [Mon, 24 Aug 2009 20:38:43 +0000 (16:38 -0400)]
openvg: fix vgTransformPath with relative coords
Ian Romanick [Mon, 24 Aug 2009 19:48:01 +0000 (12:48 -0700)]
ARB prog: Set error instead of falling through with incorrect value
If a fragment program only parameter was queried of a vertex program
(e.g., GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB) no error would be set and
a random value would be returned. This caused 'glxinfo -l' to show
the same values for GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB,
GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB, GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB,
GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB,
GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB,
GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB as for
GL_MAX_PROGRAM_ENV_PARAMETERS_ARB. This is confusing and incorrect.
Brian Paul [Mon, 24 Aug 2009 19:12:04 +0000 (13:12 -0600)]
mesa: add new program parser sources to tarball
The end user doesn't need the .y or .l or Makefile but include them anyway
in case someone wants to patch or debug things.
Brian Paul [Mon, 24 Aug 2009 19:02:33 +0000 (13:02 -0600)]
docs: recent 7.5.1 bug fixes
Brian Paul [Mon, 24 Aug 2009 18:58:47 +0000 (12:58 -0600)]
xlib: fix single buffer window resize bug
When a single-buffered window was resized the new window size was never
detected. This fix that, but there's still a bug which causes window
contents corruption for certain window sizes...
Brian Paul [Mon, 24 Aug 2009 18:43:57 +0000 (12:43 -0600)]
vbo: fix divide by zero exception
Fixes bug 23489.
Vinson Lee [Mon, 24 Aug 2009 17:43:02 +0000 (11:43 -0600)]
glsl: Silence gcc uninitialized variable warning.
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
Pauli Nieminen [Mon, 24 Aug 2009 15:44:53 +0000 (18:44 +0300)]
radeon: Add debug output to radeonCountStateEmitSize.
Pauli Nieminen [Mon, 24 Aug 2009 15:06:25 +0000 (18:06 +0300)]
r600: Fix indetion and add useful debug output.
Pauli Nieminen [Mon, 24 Aug 2009 14:09:27 +0000 (17:09 +0300)]
Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa into r600_state_predict
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.
Pauli Nieminen [Sun, 23 Aug 2009 23:44:27 +0000 (02:44 +0300)]
r600: Improve emit prediction.
Pauli Nieminen [Sun, 23 Aug 2009 23:01:15 +0000 (02:01 +0300)]
r600: Predict emit size for next rendering.
Pauli Nieminen [Sun, 23 Aug 2009 22:54:01 +0000 (01:54 +0300)]
radeon: Fix dri1 ctx emit size.
Pauli Nieminen [Sun, 23 Aug 2009 21:57:05 +0000 (00:57 +0300)]
Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa into r600_state_predict
Conflicts:
src/mesa/drivers/dri/r300/r300_cmdbuf.c
src/mesa/drivers/dri/radeon/radeon_cmdbuf.h
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.
Pauli Nieminen [Sat, 22 Aug 2009 01:37:24 +0000 (04:37 +0300)]
r300: Fix debug output.
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
Pauli Nieminen [Fri, 21 Aug 2009 23:43:41 +0000 (02:43 +0300)]
r300: Fix dri1 not to emit state that is not supported in old drm.
Pauli Nieminen [Fri, 21 Aug 2009 23:43:00 +0000 (02:43 +0300)]
radeon/r300: Code clean up and logic fix.
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.
Pauli Nieminen [Fri, 21 Aug 2009 20:48:39 +0000 (23:48 +0300)]
r300: Remove calls to rcommonEnsureCmdBufSpace.
All rendering is checked in r300PredictTryDrawPrimsSize which mamde these calls useless.
Pauli Nieminen [Fri, 21 Aug 2009 18:21:16 +0000 (21:21 +0300)]
radeon: protect against buffer overflow in state atom debug code.
Ian Romanick [Fri, 21 Aug 2009 18:34:30 +0000 (11:34 -0700)]
Merge branch 'asm-shader-rework-1'
Pauli Nieminen [Fri, 21 Aug 2009 17:44:54 +0000 (20:44 +0300)]
radeon: Improve state emit code.
Trying to make understanding code easier with small refactoring and renaming.
Pauli Nieminen [Fri, 21 Aug 2009 17:10:30 +0000 (20:10 +0300)]
r300: Add debug output to show how much was emited in TryDrawPrims.
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
Pauli Nieminen [Fri, 21 Aug 2009 15:55:34 +0000 (18:55 +0300)]
r300: Predict emit size for next rendering operation.
We do flush for cmd buffer in case there isn't enough space left for whole
rendering operation. This protects dma regions from getting released in middle
of state emit.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Pauli Nieminen [Fri, 21 Aug 2009 15:29:06 +0000 (18:29 +0300)]
r300: Handle possible fall back if space check fails.
Pauli Nieminen [Fri, 21 Aug 2009 09:37:49 +0000 (12:37 +0300)]
r300: Delay allocation of dma regions in TryDrawprims.
This makes it easier to predict size of next rendering operation so we
can do early flush.
Pauli Nieminen [Thu, 20 Aug 2009 20:02:37 +0000 (23:02 +0300)]
r300: Clean emit code.
This fixes some state atom check functions from returing wrong emit size.
There is emit code cleanup so that emit function selection is done in init
time instead of runtime.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Pauli Nieminen [Wed, 12 Aug 2009 17:28:54 +0000 (20:28 +0300)]
radeon: Port flush preventation code from r200 to r100.
- emit prediction
- fixes to emit_sizes for data
- clean up of excesive use of radeonEnsureCmdBufferSpace
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Pauli Nieminen [Tue, 11 Aug 2009 22:40:17 +0000 (01:40 +0300)]
r200: Make swtcl use state size prediction for flush.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Pauli Nieminen [Tue, 11 Aug 2009 22:12:23 +0000 (01:12 +0300)]
r200: Remove unnecessery Elts from r200 context.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Pauli Nieminen [Tue, 11 Aug 2009 21:13:00 +0000 (00:13 +0300)]
r200: Remove unnecessary calls to rcommonEnsureCmdBufSpace.
Calling EnsureCmdBufSpace is not required because rendering pipeline has to quarentee free space.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Pauli Nieminen [Tue, 11 Aug 2009 21:05:24 +0000 (00:05 +0300)]
r200: Fix atom->check call to return emit size for atom.
This patch makes render emit size prediction count the corect maximum emit size
for state.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Pauli Nieminen [Tue, 11 Aug 2009 20:43:35 +0000 (23:43 +0300)]
r200: Prevent flush in middle of rendering.
Patch adds prediction functionthat tries to predict emit size to the smallest
possible values that is quarenteed to be higher than worst case scenario in
rendering pipeline.
State emit size prediction code is in place but fix for emit sizes is included
in next patch.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Pauli Nieminen [Fri, 7 Aug 2009 16:35:55 +0000 (19:35 +0300)]
radeon/r200: Add -Wall to default build flags like it is in r300/r600
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Pauli Nieminen [Mon, 3 Aug 2009 22:39:37 +0000 (01:39 +0300)]
glx: Make drawables persistent untill they are changed by glXMakeCurrent
This fixes bug that xdemos/manywin would segfault if it was run with command
./manywin 2. Demo is tring to call glXSwapBuffers while another context was
bind using glXMakeCurrent.
Fix is simple makes drawable and readable persistent untill they change or
context is destroyed.
I found a logic error when same dri context is used for multiple drawables
which caused readable and drawable to fall out of sync in special case. Fix
is simple just updating drawables more often than in original patch.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>