Luca Barbieri [Mon, 18 Jan 2010 00:02:55 +0000 (01:02 +0100)]
nvfx: support an unlimited number of occlusion queries
Currently on nv30/nv40 an assert will be triggered once 32 queries are
outstanding.
This violates the OpenGL/Gallium interface, which requires support for
an unlimited number of fences.
This patch fixes the problem by putting queries in a linked list and
waiting on the oldest one if allocation fails.
nVidia seems to use a similar strategy, but with 1024 instead of 32 fences.
The next patch will improve this.
Vinson Lee [Mon, 12 Apr 2010 19:50:41 +0000 (12:50 -0700)]
r300g: Move declaration before code.
Fixes SCons build.
Luca Barbieri [Mon, 22 Mar 2010 04:43:56 +0000 (05:43 +0100)]
nvfx: fix TXL opcode value
Was broken during unification
Luca Barbieri [Mon, 11 Jan 2010 00:09:44 +0000 (01:09 +0100)]
nvfx: Add support for two sided color
This patch adds support for two-sided vertex color to nv30/nv40.
When set, the COLOR0/1 fs inputs on back faces will be wired to vs outputs BCOLOR0/1.
This makes OpenGL two sided lighting work, which can be tested with progs/demos/projtex.
Luca Barbieri [Mon, 12 Apr 2010 18:43:08 +0000 (20:43 +0200)]
nvfx: fix compile error
Luca Barbieri [Mon, 12 Apr 2010 18:36:44 +0000 (20:36 +0200)]
nvfx: don't use hw index buffers on nv3x and nv44
They only apparently work on nv40 grclass cards, and this was the
previous behavior of the driver.
This really needs to be investigated more.
Luca Barbieri [Wed, 20 Jan 2010 03:36:58 +0000 (04:36 +0100)]
nvfx: expose PIPE_FORMAT_B8G8R8X8_UNORM support
This is implemented in nvfx_state_fb and fragtex but was missing
in nvfx_screen.
This allows to avoid glCopyTexSubImage CPU fallbacks and makes Doom 3
much faster as a result.
Luca Barbieri [Mon, 18 Jan 2010 16:38:29 +0000 (17:38 +0100)]
nvfx: add support for ARB_half_float_vertex
Luca Barbieri [Mon, 18 Jan 2010 15:42:57 +0000 (16:42 +0100)]
st/mesa: half float vertex support (unexposed)
This was proposed by Marek Olšák and no one objected, so just
pushing it.
The extension is currently not exposed, because the mechanism to
discover if the driver actually supports this is missing.
We probably should change is_format_supported to handle this too.
This will allow to test Gallium drivers anyway in the meantime.
Based on work by Dave Airlie.
Changes by me:
1. Fix assertion in st
2. Change to use unpadded Gallium formats
Luca Barbieri [Mon, 12 Apr 2010 16:53:30 +0000 (18:53 +0200)]
nvfx: allocate buffers in GART if !NOUVEAU_SWTNL
Should improve performance and fix serious regressions on AGP cards.
Luca Barbieri [Mon, 12 Apr 2010 16:06:06 +0000 (18:06 +0200)]
nvfx: move check for NOUVEAU_SWTNL
Luca Barbieri [Tue, 23 Feb 2010 16:33:14 +0000 (17:33 +0100)]
nvfx: remove #include "nouveau_stateobj.h"
No longer used, finally!
Luca Barbieri [Tue, 23 Feb 2010 15:48:22 +0000 (16:48 +0100)]
nvfx: rework validation logic to use code and avoid stateobjs
This makes the code faster due to the lack of indirect calls and also
makes it much easier to understand what is actually going on.
Luca Barbieri [Tue, 23 Feb 2010 15:31:33 +0000 (16:31 +0100)]
nvfx: add NVFX_NEW_{FRAG,VERT}CONST
Luca Barbieri [Tue, 23 Feb 2010 14:52:24 +0000 (15:52 +0100)]
nvfx: so->RING_3D: vertprog
We could use an sb here instead, but there is no obvious performance
advantage, and perhaps there could be a disadvantage.
Luca Barbieri [Tue, 23 Feb 2010 14:45:07 +0000 (15:45 +0100)]
nvfx: so->RING_3D: sr
Luca Barbieri [Tue, 23 Feb 2010 14:34:35 +0000 (15:34 +0100)]
nvfx: so->sb: blend
Luca Barbieri [Tue, 23 Feb 2010 14:26:32 +0000 (15:26 +0100)]
nvfx: so->sb: zsa
Luca Barbieri [Tue, 23 Feb 2010 14:22:07 +0000 (15:22 +0100)]
nvfx: so->sb: rasterizer
Luca Barbieri [Tue, 23 Feb 2010 14:12:30 +0000 (15:12 +0100)]
nvfx: so->RING_3D: screen
Luca Barbieri [Tue, 23 Feb 2010 14:10:05 +0000 (15:10 +0100)]
nvfx: so->RING_3D: viewport
Luca Barbieri [Tue, 23 Feb 2010 14:09:32 +0000 (15:09 +0100)]
nvfx: so->RING_3D: stipple
Luca Barbieri [Tue, 23 Feb 2010 14:05:54 +0000 (15:05 +0100)]
nvfx: so->RING_3D: scissor
Luca Barbieri [Tue, 23 Feb 2010 14:05:36 +0000 (15:05 +0100)]
nvfx: so->RING_3D: blend
Luca Barbieri [Sun, 14 Mar 2010 19:52:18 +0000 (20:52 +0100)]
nvfx: so->RING_3D: fb
Luca Barbieri [Sun, 14 Mar 2010 19:51:42 +0000 (20:51 +0100)]
nvfx: so->RING_3D: fragprog
Luca Barbieri [Sun, 14 Mar 2010 19:50:03 +0000 (20:50 +0100)]
nvfx: so->RING_3D: fragtex
Luca Barbieri [Tue, 23 Feb 2010 10:14:28 +0000 (11:14 +0100)]
nvfx: so->RING_3D: vbo
Luca Barbieri [Sun, 14 Mar 2010 02:09:02 +0000 (03:09 +0100)]
nvfx: stop using flush_notify
Rather than emitting relocations on flush notifications, emit them
in nvfx_state_start.
Luca Barbieri [Tue, 23 Feb 2010 10:11:52 +0000 (11:11 +0100)]
nouveau: add state buffers, lightweight replacement for state objects
Just a dumb buffer, allowed by the RING_3D/fixed subchannel binding and
no support for relocations.
This is *much* faster than state objects.
Luca Barbieri [Tue, 23 Feb 2010 22:16:36 +0000 (23:16 +0100)]
nouveau: don't autobind in state objects relocations
Autobinding creates additional pushbuffer usage which may not be
accounted in callers, and is also slow.
The next relocations patch depends on this for correctness.
Assert instead if the objects are not bound, which should happen at
screen creation time.
Luca Barbieri [Tue, 23 Feb 2010 10:06:31 +0000 (11:06 +0100)]
nouveau: bind the 3D engine to subchannel 7 and add RING_3D
RING_3D creates a method start for subchannel 7.
Bind the 3D engine to a fixed subchannel to make it work
This is much faster than the old BEGIN_RING, since we don't need
to waste cycles trying to "autobind" stuff, when a fast static binding
is perfectly good.
Subchannel 7 is chosen because the kernel takes up the lowest ones.
Luca Barbieri [Mon, 12 Apr 2010 07:36:28 +0000 (09:36 +0200)]
nvfx: avoid flushes in primitives
Currently we miscalculate the space needed to push vertices, causing
flushes where they should not happen.
Use a much more conservative estimate to fix it.
It will be done better in the future (e.g. using the nv50 primitive
splitter).
Corbin Simpson [Mon, 12 Apr 2010 09:40:40 +0000 (02:40 -0700)]
r300/compiler: Comment code, add much better mirror maths.
Luca Barbieri [Mon, 12 Apr 2010 09:45:50 +0000 (11:45 +0200)]
nvfx: fix bind flags
Corbin Simpson [Sun, 11 Apr 2010 23:13:45 +0000 (16:13 -0700)]
r300/compiler: Implement texcoord repeat and mirror for NPOT.
Corbin Simpson [Sun, 11 Apr 2010 20:55:00 +0000 (13:55 -0700)]
r300g: Setup external state for wrap modes.
Corbin Simpson [Sun, 11 Apr 2010 20:52:01 +0000 (13:52 -0700)]
r300g: Cleanup fragment program external state setup.
Corbin Simpson [Sun, 11 Apr 2010 20:31:54 +0000 (13:31 -0700)]
r300/compiler: Add NPOT compatibility fields to external state.
Completely unused for now.
José Fonseca [Mon, 12 Apr 2010 06:16:01 +0000 (15:16 +0900)]
llvmpipe: Respect pipe_sampler_view::format.
José Fonseca [Mon, 12 Apr 2010 06:09:18 +0000 (15:09 +0900)]
progs/gallium/raw: Update symbols.
Untested -- just the same changes done to progs/gallium/python.
José Fonseca [Mon, 12 Apr 2010 06:08:05 +0000 (15:08 +0900)]
progs/gallium/python: Try to fix most regressions.
Not enough for retrace to work again though.
José Fonseca [Mon, 12 Apr 2010 06:04:16 +0000 (15:04 +0900)]
st/python: Fix regressions.
José Fonseca [Mon, 12 Apr 2010 06:03:25 +0000 (15:03 +0900)]
trace: Fix several regressions introduced by recent interface changes.
José Fonseca [Mon, 12 Apr 2010 06:02:22 +0000 (15:02 +0900)]
llvmpipe: pipe_target needs now 3 bits to be represented.
José Fonseca [Sun, 11 Apr 2010 09:16:39 +0000 (18:16 +0900)]
stw: Update for pipe_resource interface changes.
José Fonseca [Sun, 11 Apr 2010 08:58:17 +0000 (17:58 +0900)]
stw: Fix minor st_api migration glitches.
Chia-I Wu [Wed, 17 Mar 2010 02:11:22 +0000 (10:11 +0800)]
st/wgl: Switch from st_public.h to st_api.h. [V2]
This is only compile tested with crossmingw.
V2:
- reference count stw_framebuffer
Török Edwin [Fri, 9 Apr 2010 17:05:47 +0000 (20:05 +0300)]
Fix build with --enable-32-bit.
CFLAGS needs to be passed, as you already know.
Commit
3e17a5b047124c46ee45dbd1848127c67e0d62f3 broke this by adding a new link
command without CFLAGS.
Signed-off-by: Török Edwin <edwintorok@gmail.com>
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Dan Nicholson [Mon, 12 Apr 2010 03:56:22 +0000 (20:56 -0700)]
Revert "dri/drivers: fix 32bit builds on 64bit systems"
This reverts commit
bd09fce27119548cb91cc2aa9ced6a7347aefc3a. Török
Edwin sent the correct fix to the list a couple days ago in
<
1270832747-15611-1-git-send-email-edwintorok@gmail.com>.
Luca Barbieri [Mon, 12 Apr 2010 02:55:05 +0000 (04:55 +0200)]
nvfx: make NOUVEAU_NO_TRANSFER default off
Otherwise, we read from VRAM...
Yes, again, it should be fixed to tell whether the buffer is in
VRAM or not and behave appropriately.
But this should be in pipebuffer/a generic layer; revisit this later
too.
Luca Barbieri [Mon, 12 Apr 2010 02:49:02 +0000 (04:49 +0200)]
nvfx: always use M2MF instead of the blitter
Currently we are relocating transfers to VRAM to use the blitter,
which is terrible.
Maybe for ->VRAM the blitter could be better, but we can't be
perfectly sure of that due to relocations.
In other words, just do the simple thing, and defer fine-tuning the
transfer hardware method to a later stage, while making it work
decently now.
Chia-I Wu [Mon, 12 Apr 2010 03:08:31 +0000 (11:08 +0800)]
st/egl: Request the front buffer as needed.
The front buffer is added to support old X servers. Check the version
of the server so that it can be added as needed.
Luca Barbieri [Mon, 12 Apr 2010 02:38:53 +0000 (04:38 +0200)]
nvfx: add missing vtbl for shared textures
Marek Olšák [Mon, 12 Apr 2010 02:12:27 +0000 (04:12 +0200)]
r300g: atomize FS constant buffer
Marek Olšák [Mon, 12 Apr 2010 01:46:03 +0000 (03:46 +0200)]
r300g: atomize compiler's state variables for fragment shader
Marek Olšák [Mon, 12 Apr 2010 01:08:38 +0000 (03:08 +0200)]
r300g: atomize fragment shader
Marek Olšák [Mon, 12 Apr 2010 00:26:47 +0000 (02:26 +0200)]
r300g: remove a false comment
Marek Olšák [Mon, 12 Apr 2010 00:17:35 +0000 (02:17 +0200)]
r300g: emit FS depth output config with FS code
Marek Olšák [Sun, 11 Apr 2010 21:00:16 +0000 (23:00 +0200)]
r300g: FS constants emission rework
* The constant buffer emission is separated from RC state variables emission.
* The immediates are emitted with FS code.
Vinson Lee [Mon, 12 Apr 2010 01:27:04 +0000 (18:27 -0700)]
r300g: Remove unnecessary headers.
Vinson Lee [Mon, 12 Apr 2010 01:19:24 +0000 (18:19 -0700)]
r300g: Initialize base.bind member variable.
The base.bind member variable was never initialized.
Vinson Lee [Mon, 12 Apr 2010 01:07:41 +0000 (18:07 -0700)]
i915g: Fix possible null pointer deference in debug builds.
i915_buffer deferences buf in debug builds. Move declaration and
assignment to inside NULL check of buf.
Vinson Lee [Mon, 12 Apr 2010 00:30:44 +0000 (17:30 -0700)]
progs/trivial: Update .gitignore.
Jakob Bornecrantz [Sat, 10 Apr 2010 12:32:12 +0000 (14:32 +0200)]
progs/egl: Add lib directories to OpenVG demos
Jakob Bornecrantz [Sun, 11 Apr 2010 22:28:49 +0000 (00:28 +0200)]
st/egl: Fix DRI2 on old X servers
Jakob Bornecrantz [Sat, 10 Apr 2010 11:41:22 +0000 (13:41 +0200)]
winsys/sw: Fix error paths
Jakob Bornecrantz [Sun, 11 Apr 2010 23:47:28 +0000 (01:47 +0200)]
llvmpipe: Fix transfers after resource change
Vinson Lee [Sun, 11 Apr 2010 22:06:07 +0000 (15:06 -0700)]
util: Remove unnecessary header.
Vinson Lee [Sun, 11 Apr 2010 21:59:09 +0000 (14:59 -0700)]
i965g: Remove unnecessary header.
Vinson Lee [Sun, 11 Apr 2010 21:51:14 +0000 (14:51 -0700)]
r300g: Add r300_resource.c to SCons build.
This was missed in commit
287c94ea4987033f9c99a2f91c5750c9083504ca,
the gallium-resources branch merge.
Vinson Lee [Sun, 11 Apr 2010 21:27:16 +0000 (14:27 -0700)]
svga: Remove unnecessary headers.
Vinson Lee [Sun, 11 Apr 2010 21:03:57 +0000 (14:03 -0700)]
trace: Remove unnecessary header.
Marek Olšák [Sun, 11 Apr 2010 17:28:01 +0000 (19:28 +0200)]
r300g: a fix for piglit/texrect-many
Broken since
146879284c6b844f35afe3a3ef3330726afbe8ac.
Marek Olšák [Sun, 11 Apr 2010 08:15:12 +0000 (10:15 +0200)]
r300g: use a dummy replacement vertex shader if the shader compilation fails
Marek Olšák [Sun, 11 Apr 2010 08:15:12 +0000 (10:15 +0200)]
r300g: use a dummy replacement fragment shader if the shader compilation fails
Better than killing an application.
Maciej Cencora [Sun, 11 Apr 2010 14:33:55 +0000 (16:33 +0200)]
dri/drivers: fix 32bit builds on 64bit systems
Maciej Cencora [Sun, 11 Apr 2010 12:12:13 +0000 (14:12 +0200)]
Merge commit 'origin/7.8'
Maciej Cencora [Sun, 11 Apr 2010 10:39:54 +0000 (12:39 +0200)]
r300: respect radeon common code fallbacks
Fixes progs/demos/shadowtex under KMS
Maciej Cencora [Fri, 9 Apr 2010 19:14:15 +0000 (21:14 +0200)]
r300: set proper vertex index limits also in non indexed mode
Fixes #27521, broken menus in UT2004 and broken water refraction in Sauerbraten.
Christoph Bumiller [Sun, 11 Apr 2010 09:36:34 +0000 (11:36 +0200)]
nv50: fix texture relocs
The new address should go to TIC entries 1, 2 instead of entry 0.
Also, using PIPE_SHADER_* for the program type was wrong, they're
ordered like the tesla method now, sorry for the confusion.
Chia-I Wu [Sun, 11 Apr 2010 07:09:24 +0000 (15:09 +0800)]
st/egl: Follow the portability guide.
Avoid including standard library headers and use MALLOC/FREE if
possible.
Chia-I Wu [Sun, 11 Apr 2010 06:42:07 +0000 (14:42 +0800)]
st/egl: Factor driver callbacks to a new file.
Factor all callbacks other than Initialize, Terminate, and GetProcAddress
to egl_g3d_api.c.
José Fonseca [Sat, 10 Apr 2010 02:01:30 +0000 (03:01 +0100)]
scons: Always build softpipe and llvmpipe (when llvm available).
These are our reference software rasterizers. They can build everywhere
and are a precious debugging tool.
Making them always present immensily simplifies the scons logic.
If people want to avoid building it is still possible to pass
direcotries and target names to scons to narrow the build.
José Fonseca [Sat, 10 Apr 2010 01:44:52 +0000 (02:44 +0100)]
scons: Make debug build default.
I've been back and forth on this, but I believe it's worth to have debug
by default.
Most humans (developers, testers) will want to use the debug version by
default. Many build bots want release but they are bots, and humans >
bots, so I don't care that much.
This is part of my initiative of minimizing the scons option mess many
complain about.
José Fonseca [Sat, 10 Apr 2010 01:41:39 +0000 (02:41 +0100)]
scons: Make LLVM a black-white dependency.
Now that draw depends on llvm it is very difficult to correctly handle
broken llvm installations. Either the user requests LLVM and it needs to
supply a working installation. Or it doesn't, and it gets no LLVM
accelerate pipe drivers.
José Fonseca [Sat, 10 Apr 2010 01:00:33 +0000 (02:00 +0100)]
scons: Use libdrm options only where needed.
Prevents needless recompiles when switching dri=yes to no.
José Fonseca [Sat, 10 Apr 2010 00:53:12 +0000 (01:53 +0100)]
scons: Build glapi regardless of the dri option.
Marek Olšák [Sun, 11 Apr 2010 06:28:39 +0000 (08:28 +0200)]
r300g: revisit some assertions and fix potential failures
* Turn some assertions to error messages.
* At most 16 vertex elements can be set, others are ignored.
* Rasterize at most 8 vertex-shader generic outputs, others are ignored.
This includes fog and WPOS.
* Unknown shader semantic names are ignored.
Marek Olšák [Sun, 11 Apr 2010 06:27:33 +0000 (08:27 +0200)]
r300g: use cliprects for scissoring
Cliprects can be disabled, scissors can't. It maps nicely to hardware.
Vinson Lee [Sun, 11 Apr 2010 05:20:10 +0000 (22:20 -0700)]
st/egl: Remove unnecessary header.
Vinson Lee [Sun, 11 Apr 2010 05:14:06 +0000 (22:14 -0700)]
i965: Remove unnecessary header.
Vinson Lee [Sun, 11 Apr 2010 05:03:29 +0000 (22:03 -0700)]
r300: Remove unnecessary header.
Vinson Lee [Sun, 11 Apr 2010 04:51:24 +0000 (21:51 -0700)]
mach64: Remove unnecessary header.
Vinson Lee [Sun, 11 Apr 2010 04:42:05 +0000 (21:42 -0700)]
radeon: Remove unnecessary header.
Marek Olšák [Sun, 11 Apr 2010 03:06:27 +0000 (05:06 +0200)]
r300g: fix mipmapped 3D textures
This is a bug in the CS checker causing CS being rejected.
Marek Olšák [Sun, 11 Apr 2010 02:43:23 +0000 (04:43 +0200)]
r300g: support some exotic sampler formats
Vinson Lee [Sun, 11 Apr 2010 04:05:40 +0000 (21:05 -0700)]
st/mesa: Silence uninitialized variable warning.
Vinson Lee [Sun, 11 Apr 2010 03:45:03 +0000 (20:45 -0700)]
nvfx: Silence uninitialized variable warning.
Vinson Lee [Sun, 11 Apr 2010 03:28:24 +0000 (20:28 -0700)]
nvfx: Silence uninitialized variable warnings.