Marek Olšák [Wed, 14 Apr 2010 00:21:06 +0000 (02:21 +0200)]
r300g: emit VS immediates along with VS code
Marek Olšák [Wed, 14 Apr 2010 00:33:17 +0000 (02:33 +0200)]
r300g: make setting up fragment depth output less hackish
Marek Olšák [Tue, 13 Apr 2010 23:22:53 +0000 (01:22 +0200)]
st/mesa: trivially enable ATI_texture_mirror_once
This is a strict subset of already-advertised EXT_texture_mirror_clamp and
shares the same enumerants.
Marek Olšák [Tue, 13 Apr 2010 23:12:49 +0000 (01:12 +0200)]
r300g: kill off r300_fragment_shader::shadow_samplers and friends
José Fonseca [Wed, 14 Apr 2010 01:22:41 +0000 (10:22 +0900)]
retrace: Update for recent interface changes.
José Fonseca [Wed, 14 Apr 2010 01:03:22 +0000 (10:03 +0900)]
trace: Ignore transfer_flush_region too.
Vinson Lee [Wed, 14 Apr 2010 00:17:15 +0000 (17:17 -0700)]
i915g: Fix winsys SCons build.
Jakob Bornecrantz [Mon, 12 Apr 2010 21:06:48 +0000 (22:06 +0100)]
i915g: Whitespace & formating
Jakob Bornecrantz [Mon, 12 Apr 2010 21:06:23 +0000 (22:06 +0100)]
i915g: Mark shared layouts more clearly
Jakob Bornecrantz [Mon, 12 Apr 2010 21:18:58 +0000 (22:18 +0100)]
i915: Fix comments about cube layouts
Jesse Barnes [Tue, 13 Apr 2010 16:40:14 +0000 (09:40 -0700)]
Merge branch '7.8'
Jesse Barnes [Tue, 13 Apr 2010 16:38:41 +0000 (09:38 -0700)]
DRI2: report swap events correctly in direct rendered case
In the direct rendered case, we need to convert DRI2 swap complete
events to GLX events for the client to consume. This path had what
looks like a stray "& 0x75" from some earlier debugging that prevented
clients from seeing the right event code.
Alan Hourihane [Tue, 13 Apr 2010 14:40:29 +0000 (15:40 +0100)]
llvmpipe: disable half float formats
Chia-I Wu [Tue, 13 Apr 2010 10:17:52 +0000 (18:17 +0800)]
gallium: Remove pipe_screen::update_buffer.
It has no user after the removal of st_public. Plus, it has never been
implemented by a pipe driver or winsys.
Alan Hourihane [Tue, 13 Apr 2010 11:54:36 +0000 (12:54 +0100)]
gallium: disable tests when using embedded build
José Fonseca [Tue, 13 Apr 2010 10:40:48 +0000 (19:40 +0900)]
scons: Fix exception when llvm-config is not present.
Michal Krol [Tue, 13 Apr 2010 07:59:49 +0000 (08:59 +0100)]
util: Fix util_dynarray_trim().
Luca Barbieri [Wed, 20 Jan 2010 08:04:37 +0000 (09:04 +0100)]
nvfx: use dynamically sized rotating BO pool for fragment programs
Currently we used a single buffer for each fragment programs, leading to
rendering synchronization. This patch uses a doubly linked list of BOs,
which is dynamically resized if all the BOs are busy.
Note that inline image transfers could be an alternative option: this
will be explored later.
This removes one of the big performance limitations of the current
driver.
We also stop using pipe_resource internally in favor of using nouveau_bo
directly.
Vinson Lee [Tue, 13 Apr 2010 07:49:58 +0000 (00:49 -0700)]
draw llvm: Initialize variable.
Vinson Lee [Tue, 13 Apr 2010 07:35:10 +0000 (00:35 -0700)]
r300g: Silence uninitialized variable warning.
Vinson Lee [Tue, 13 Apr 2010 07:29:33 +0000 (00:29 -0700)]
st/mesa: Remove state_tracker/st_framebuffer.c from SConscript.
This was missed in commit
da8412ec19ad00627ae9139dc02f46f344bbb6ac.
Fixes SCons build.
Chia-I Wu [Mon, 12 Apr 2010 08:13:33 +0000 (16:13 +0800)]
st/mesa: Drop st_public support.
There is no user of st_public now.
Chia-I Wu [Mon, 12 Apr 2010 08:39:18 +0000 (16:39 +0800)]
st/vega: Drop st_public support.
There is no user of st_public now.
Chia-I Wu [Mon, 12 Apr 2010 08:36:24 +0000 (16:36 +0800)]
st/vega: Do not rely on st_resize_framebuffer.
Add vg_context_update_draw_buffer (and helpers) that duplicates the
logic of st_resize_framebuffer. Use the new function instead of
st_resize_framebuffer in vg_manager.c.
Luca Barbieri [Tue, 13 Apr 2010 07:02:42 +0000 (09:02 +0200)]
nvfx: fix for 64-bit systems
Thanks to Patrice Mandin for debugging this.
Luca Barbieri [Tue, 13 Apr 2010 06:24:48 +0000 (08:24 +0200)]
gallium/auxiliary: make util_dynarray_trim do nothing if size == capacity
Luca Barbieri [Tue, 13 Apr 2010 06:23:29 +0000 (08:23 +0200)]
gallium/auxiliary: add util_dynarray_resize
Luca Barbieri [Tue, 13 Apr 2010 06:18:59 +0000 (08:18 +0200)]
gallium/auxiliary: fix util_dynarray_trim to 0 to free the data
This works better and preserves the
data != 0 if and only if capacity != 0 invariant.
Luca Barbieri [Tue, 13 Apr 2010 04:05:12 +0000 (06:05 +0200)]
util: implement Jose Fonseca's suggestions for u_buffer.h -> u_dynarray.h
Also describe invariants explicitly and use char* for arithmetic.
Corbin Simpson [Tue, 13 Apr 2010 01:23:17 +0000 (18:23 -0700)]
r300/compiler: Hax around instructions limits in mirroring code.
Stuff's starting to show up in arbnpot.
Brian Paul [Tue, 13 Apr 2010 00:45:10 +0000 (18:45 -0600)]
docs: update name, link for mesa-dev list
Dave Airlie [Mon, 12 Apr 2010 05:40:29 +0000 (15:40 +1000)]
ffvertex: don't touch tex coords if coord replace is enabled.
The fixed function vertex program shouldn't need to deal or touch tex coords
if stuffing is enabled.
Though I'm not 100% this won't break assumption made elsewhere it seems like
the correct thing to do, and makes r300g point sprites a lot easier to implement.
draw: fix point-sprite when vertex program is used.
This commit regressed draw, so fix it as well to help bisection.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Marek Olšák [Thu, 24 Dec 2009 20:29:41 +0000 (21:29 +0100)]
r300g: add generating texture coordinates for point sprites
[airlied -
Convert sprite coord index to a per-coord enable bit
set the rasteriser block up correctly for point sprites.
The inputs to the RS hw block change for sprite coords, so fix them up
properly - this fixes piglit point-sprite test.
]
Signed-off-by: Dave Airlie <airlied@redhat.com>
José Fonseca [Mon, 12 Apr 2010 22:05:13 +0000 (07:05 +0900)]
progs/gallium: Move into src/gallium/tests
Two reasons:
- progs will eventually have its own repository
- it is just to easy to forget updating the
code for interface changes when it is outside of src
Luca Barbieri [Thu, 25 Feb 2010 12:11:12 +0000 (13:11 +0100)]
gallium/auxiliary: add dynamically sized buffer/array/vector
Luca Barbieri [Thu, 25 Feb 2010 01:52:43 +0000 (02:52 +0100)]
nvfx: add LRP in vertprog
glsl generates these.
Luca Barbieri [Tue, 19 Jan 2010 16:26:20 +0000 (17:26 +0100)]
nvfx: add SIN and COS in vertprog
Luca Barbieri [Mon, 18 Jan 2010 17:20:45 +0000 (18:20 +0100)]
nvfx: add missing vertprog setcond instructions
Trivially adds SEQ, SGT, SLE, SNE, SFL, STR and SSG which were missing.
Luca Barbieri [Mon, 18 Jan 2010 00:13:40 +0000 (01:13 +0100)]
nvfx: allocate a bigger block for queries
This patch allocates a bigger chunk of memory to store queries in,
increasing the (hidden) outstanding query limit.
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.