platform/upstream/mesa.git
14 years agosoftpipe: formatting fixes and comments
Brian Paul [Thu, 15 Apr 2010 21:54:14 +0000 (15:54 -0600)]
softpipe: formatting fixes and comments

14 years agogallivm: remove some old stuff
Brian Paul [Thu, 15 Apr 2010 21:05:04 +0000 (15:05 -0600)]
gallivm: remove some old stuff

14 years agost/drisw: Stop pretending to be drm_api
Jakob Bornecrantz [Wed, 14 Apr 2010 22:03:51 +0000 (23:03 +0100)]
st/drisw: Stop pretending to be drm_api

Reviewed-by: George Sapountzis <gsapountzis@gmail.com>
14 years agost/dri: Refactor init code a bit
Jakob Bornecrantz [Wed, 14 Apr 2010 20:28:12 +0000 (21:28 +0100)]
st/dri: Refactor init code a bit

Reviewed-by: George Sapountzis <gsapountzis@gmail.com>
14 years agost/mesa: Remove NULL check of pointer that could not be NULL.
Vinson Lee [Fri, 16 Apr 2010 07:55:35 +0000 (00:55 -0700)]
st/mesa: Remove NULL check of pointer that could not be NULL.

cbuf has been dereferenced twice earlier in the same if-block. It is
either not NULL or a crash has already occurred.

14 years agor300/compiler: Fix texture instruction readmasks.
Corbin Simpson [Fri, 16 Apr 2010 07:39:42 +0000 (00:39 -0700)]
r300/compiler: Fix texture instruction readmasks.

No immediate benefit, it was just bugging me.

14 years agor300/compiler: Fix magic numbers in readmasks.
Corbin Simpson [Fri, 16 Apr 2010 07:35:10 +0000 (00:35 -0700)]
r300/compiler: Fix magic numbers in readmasks.

14 years agor300/compiler: Oops, this slipped through.
Corbin Simpson [Fri, 16 Apr 2010 06:35:48 +0000 (23:35 -0700)]
r300/compiler: Oops, this slipped through.

14 years agor300/compiler: Save Q for mirror and repeat.
Corbin Simpson [Fri, 16 Apr 2010 06:23:52 +0000 (23:23 -0700)]
r300/compiler: Save Q for mirror and repeat.

14 years agor300/compiler: Split off texture fixes to their own file.
Corbin Simpson [Fri, 16 Apr 2010 05:48:18 +0000 (22:48 -0700)]
r300/compiler: Split off texture fixes to their own file.

Yes, I'm fully aware this generates subpar code on r500.

14 years agodrisw: Move pointer dereferences to after NULL checks.
Vinson Lee [Fri, 16 Apr 2010 07:35:30 +0000 (00:35 -0700)]
drisw: Move pointer dereferences to after NULL checks.

14 years agost/egl: Remove unnecessary header.
Vinson Lee [Fri, 16 Apr 2010 07:23:25 +0000 (00:23 -0700)]
st/egl: Remove unnecessary header.

14 years agost/dri: Remove unnecessary header.
Vinson Lee [Fri, 16 Apr 2010 07:16:08 +0000 (00:16 -0700)]
st/dri: Remove unnecessary header.

14 years agost/mesa: Move dereference and assignment to after NULL check.
Vinson Lee [Fri, 16 Apr 2010 06:15:05 +0000 (23:15 -0700)]
st/mesa: Move dereference and assignment to after NULL check.

14 years agomesa: Add missing format specifiers in error strings.
Vinson Lee [Fri, 16 Apr 2010 00:17:29 +0000 (17:17 -0700)]
mesa: Add missing format specifiers in error strings.

14 years agor300/compiler: fix repeat wrap mode for TXP and NPOTs
Marek Olšák [Thu, 15 Apr 2010 23:59:11 +0000 (01:59 +0200)]
r300/compiler: fix repeat wrap mode for TXP and NPOTs

No idea why st/mesa unnecessarily inserts TXP where TEX is sufficient.
Also re-enabling the NPOT fallback for repeat in r300g.

14 years agoi915g: Create a special 2D layout helper
Jakob Bornecrantz [Thu, 15 Apr 2010 22:30:44 +0000 (23:30 +0100)]
i915g: Create a special 2D layout helper

14 years agoi915g: Fix 2D layouts
Jakob Bornecrantz [Thu, 15 Apr 2010 22:26:12 +0000 (23:26 +0100)]
i915g: Fix 2D layouts

This should fix 2D compressed layouts

14 years agoi915g: Remove unused args
Jakob Bornecrantz [Thu, 15 Apr 2010 22:20:03 +0000 (23:20 +0100)]
i915g: Remove unused args

14 years agor300/compiler: kill off RC_WRAP_CLAMP
Marek Olšák [Thu, 15 Apr 2010 21:58:38 +0000 (23:58 +0200)]
r300/compiler: kill off RC_WRAP_CLAMP

A variant thereof might be later reintroduced for the mirrored-clamp modes.

14 years agor300g: mask out the mirrored bit correctly in the registers
Marek Olšák [Thu, 15 Apr 2010 21:15:41 +0000 (23:15 +0200)]
r300g: mask out the mirrored bit correctly in the registers

It was previously done wrong + now it shouldn't render garbage,
so that the NPOT fallback can get in.

14 years agor300g: fix the MIRROR_CLAMP_TO_BORDER wrap mode
Marek Olšák [Thu, 15 Apr 2010 20:05:23 +0000 (22:05 +0200)]
r300g: fix the MIRROR_CLAMP_TO_BORDER wrap mode

I guess this was a typo.

14 years agor300g: add missing r300_state.h
Marek Olšák [Thu, 15 Apr 2010 08:24:06 +0000 (10:24 +0200)]
r300g: add missing r300_state.h

I am very bad at this.

14 years agor300g: disable the REPEAT NPOT fallback until it works
Marek Olšák [Thu, 15 Apr 2010 08:03:48 +0000 (10:03 +0200)]
r300g: disable the REPEAT NPOT fallback until it works

It causes regressions. I haven't tested the MIRROR wrap modes,
so not sure about that..

14 years agor300g: do not use NPOT fallback for CLAMP wrap modes
Marek Olšák [Thu, 15 Apr 2010 07:52:26 +0000 (09:52 +0200)]
r300g: do not use NPOT fallback for CLAMP wrap modes

These work just fine.

14 years agor300g: pick a new fragment shader when either a sampler state or view is changed
Marek Olšák [Thu, 15 Apr 2010 07:26:07 +0000 (09:26 +0200)]
r300g: pick a new fragment shader when either a sampler state or view is changed

14 years agost/mesa: Remove unnecessary headers.
Vinson Lee [Thu, 15 Apr 2010 06:49:31 +0000 (23:49 -0700)]
st/mesa: Remove unnecessary headers.

14 years agonvfx: dont swizzle stuff into GART
Xavier Chantry [Wed, 14 Apr 2010 21:44:22 +0000 (23:44 +0200)]
nvfx: dont swizzle stuff into GART

swzsurf doesn't support GART

Thanks to Marcin Kościelnicki <koriakin@0x04.net> for spotting that !

This fixes corruption in etracer and the following related errors :
[14381.551927] [drm] nouveau 0000:01:00.0: PGRAPH_ERROR - nSource:
PROTECTION_ERROR, nStatus: INVALID_STATE
[14381.551945] [drm] nouveau 0000:01:00.0: PGRAPH_ERROR - Ch 2/2 Class
0x039e Mthd 0x0184 Data 0x00001cd9:0x00001cd9

Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
Adapted by Luca Barbieri for mesa master.

14 years agonouveau: replace vtxbuf/idxbuf caps with BO_ flags in nouveau_screen and fix uncached...
Luca Barbieri [Thu, 15 Apr 2010 04:57:20 +0000 (06:57 +0200)]
nouveau: replace vtxbuf/idxbuf caps with BO_ flags in nouveau_screen and fix uncached reads on nv3x

Faster, simpler and more flexible.

Also, we set those flags properly on nv3x so that we don't allocate buffers in GART.

Since on AGP GART is uncached, OpenGL doesn't distinguish between vertex and index buffers, and we don't support hardware index buffers for now, this caused uncached reads.

Also check bind and not usage for PIPE_BIND_* flags, got broken in the gallium-resources transition.

14 years agoi915g: Remove unnecessary header.
Vinson Lee [Thu, 15 Apr 2010 05:59:37 +0000 (22:59 -0700)]
i915g: Remove unnecessary header.

14 years agor300g: fix regression in texdepth.
Dave Airlie [Thu, 15 Apr 2010 04:56:20 +0000 (14:56 +1000)]
r300g: fix regression in texdepth.

texdepth stopped working when npot went in, this brings it back
to life.

< MostAwesomeDude> That looks like what I was going to do.

Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agogallium/tests: Add test case for pipe_barrier.
Vinson Lee [Thu, 15 Apr 2010 01:06:54 +0000 (18:06 -0700)]
gallium/tests: Add test case for pipe_barrier.

14 years agoswrastg: Fix defines to be able to load more then one sw driver
Jakob Bornecrantz [Wed, 14 Apr 2010 20:44:48 +0000 (21:44 +0100)]
swrastg: Fix defines to be able to load more then one sw driver

14 years agollvmpipe: comments for fence functions
Brian Paul [Wed, 14 Apr 2010 19:03:26 +0000 (13:03 -0600)]
llvmpipe: comments for fence functions

14 years agoprogs/tests: added stencilreaddraw to SConscript, Makefile
Brian Paul [Thu, 8 Apr 2010 20:52:02 +0000 (14:52 -0600)]
progs/tests: added stencilreaddraw to SConscript, Makefile

14 years agoprogs/tests: new stencilreaddraw.c test
Brian Paul [Thu, 8 Apr 2010 20:51:23 +0000 (14:51 -0600)]
progs/tests: new stencilreaddraw.c test

Based on the zreaddraw.c test.

14 years agomesa: add -D__STDC_CONSTANT_MACROS to linux-llvm
Brian Paul [Thu, 8 Apr 2010 19:41:50 +0000 (13:41 -0600)]
mesa: add -D__STDC_CONSTANT_MACROS to linux-llvm

This is needed in more places (st_cb_feedback.c) since the new LLVM
code has been added to the gallium/draw module.

14 years agoegl_dri2: Enable KHR_gl_texture_2D_image
Kristian Høgsberg [Wed, 14 Apr 2010 20:22:27 +0000 (16:22 -0400)]
egl_dri2: Enable KHR_gl_texture_2D_image

Forgot to set the enabled bit when I implemented the extension.

14 years agor300g: fix possible crash when shader compilation fails
Marek Olšák [Wed, 14 Apr 2010 18:23:15 +0000 (20:23 +0200)]
r300g: fix possible crash when shader compilation fails

This hopefully fixes the crash in the FDO bug #27634, not the bug itself.

14 years agoInitialize DRI2 swap interval to 0
Michael Schmidt [Wed, 14 Apr 2010 14:12:42 +0000 (10:12 -0400)]
Initialize DRI2 swap interval to 0

https://bugs.freedesktop.org/show_bug.cgi?id=27628

14 years agoglxinfo: Print drawable type in verbose mode
Kristian Høgsberg [Wed, 14 Apr 2010 14:06:01 +0000 (10:06 -0400)]
glxinfo: Print drawable type in verbose mode

14 years agor300g: simplify get_shader_constant to be rc-constant-state specific
Marek Olšák [Wed, 14 Apr 2010 11:25:51 +0000 (13:25 +0200)]
r300g: simplify get_shader_constant to be rc-constant-state specific

14 years agost/mesa: put ATI_texture_mirror_once in the right place
Marek Olšák [Wed, 14 Apr 2010 10:49:20 +0000 (12:49 +0200)]
st/mesa: put ATI_texture_mirror_once in the right place

14 years agoprogs/gallium: Fix relative path in Makefile.
Vinson Lee [Wed, 14 Apr 2010 08:17:24 +0000 (01:17 -0700)]
progs/gallium: Fix relative path in Makefile.

14 years agou_blitter: Coords are normalized.
Corbin Simpson [Wed, 14 Apr 2010 06:28:11 +0000 (23:28 -0700)]
u_blitter: Coords are normalized.

Thanks to Luca Barbieri for spotting this one.

14 years agor300g: remove the CS compenstation for non-atomized states
Marek Olšák [Wed, 14 Apr 2010 02:44:13 +0000 (04:44 +0200)]
r300g: remove the CS compenstation for non-atomized states

Now there aren't any. If CS overflow occurs, the fix should go directly
before the problematic BEGIN_CS.

14 years agor300g: remove always_dirty flag and correct leftovers
Marek Olšák [Wed, 14 Apr 2010 02:23:48 +0000 (04:23 +0200)]
r300g: remove always_dirty flag and correct leftovers

14 years agor300g: atomize beginning occlusion query
Marek Olšák [Wed, 14 Apr 2010 02:22:22 +0000 (04:22 +0200)]
r300g: atomize beginning occlusion query

14 years agor300g: atomize VS constant buffer
Marek Olšák [Wed, 14 Apr 2010 02:12:08 +0000 (04:12 +0200)]
r300g: atomize VS constant buffer

14 years agor300g: emit VS immediates along with VS code
Marek Olšák [Wed, 14 Apr 2010 00:21:06 +0000 (02:21 +0200)]
r300g: emit VS immediates along with VS code

14 years agor300g: make setting up fragment depth output less hackish
Marek Olšák [Wed, 14 Apr 2010 00:33:17 +0000 (02:33 +0200)]
r300g: make setting up fragment depth output less hackish

14 years agost/mesa: trivially enable ATI_texture_mirror_once
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.

14 years agor300g: kill off r300_fragment_shader::shadow_samplers and friends
Marek Olšák [Tue, 13 Apr 2010 23:12:49 +0000 (01:12 +0200)]
r300g: kill off r300_fragment_shader::shadow_samplers and friends

14 years agoretrace: Update for recent interface changes.
José Fonseca [Wed, 14 Apr 2010 01:22:41 +0000 (10:22 +0900)]
retrace: Update for recent interface changes.

14 years agotrace: Ignore transfer_flush_region too.
José Fonseca [Wed, 14 Apr 2010 01:03:22 +0000 (10:03 +0900)]
trace: Ignore transfer_flush_region too.

14 years agoi915g: Fix winsys SCons build.
Vinson Lee [Wed, 14 Apr 2010 00:17:15 +0000 (17:17 -0700)]
i915g: Fix winsys SCons build.

14 years agoi915g: Whitespace & formating
Jakob Bornecrantz [Mon, 12 Apr 2010 21:06:48 +0000 (22:06 +0100)]
i915g: Whitespace & formating

14 years agoi915g: Mark shared layouts more clearly
Jakob Bornecrantz [Mon, 12 Apr 2010 21:06:23 +0000 (22:06 +0100)]
i915g: Mark shared layouts more clearly

14 years agoi915: Fix comments about cube layouts
Jakob Bornecrantz [Mon, 12 Apr 2010 21:18:58 +0000 (22:18 +0100)]
i915: Fix comments about cube layouts

14 years agoMerge branch '7.8'
Jesse Barnes [Tue, 13 Apr 2010 16:40:14 +0000 (09:40 -0700)]
Merge branch '7.8'

14 years agoDRI2: report swap events correctly in direct rendered case
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.

14 years agollvmpipe: disable half float formats
Alan Hourihane [Tue, 13 Apr 2010 14:40:29 +0000 (15:40 +0100)]
llvmpipe: disable half float formats

14 years agogallium: Remove pipe_screen::update_buffer.
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.

14 years agogallium: disable tests when using embedded build
Alan Hourihane [Tue, 13 Apr 2010 11:54:36 +0000 (12:54 +0100)]
gallium: disable tests when using embedded build

14 years agoscons: Fix exception when llvm-config is not present.
José Fonseca [Tue, 13 Apr 2010 10:40:48 +0000 (19:40 +0900)]
scons: Fix exception when llvm-config is not present.

14 years agoutil: Fix util_dynarray_trim().
Michal Krol [Tue, 13 Apr 2010 07:59:49 +0000 (08:59 +0100)]
util: Fix util_dynarray_trim().

14 years agonvfx: use dynamically sized rotating BO pool for fragment programs
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.

14 years agodraw llvm: Initialize variable.
Vinson Lee [Tue, 13 Apr 2010 07:49:58 +0000 (00:49 -0700)]
draw llvm: Initialize variable.

14 years agor300g: Silence uninitialized variable warning.
Vinson Lee [Tue, 13 Apr 2010 07:35:10 +0000 (00:35 -0700)]
r300g: Silence uninitialized variable warning.

14 years agost/mesa: Remove state_tracker/st_framebuffer.c from SConscript.
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.

14 years agost/mesa: Drop st_public support.
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.

14 years agost/vega: Drop st_public support.
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.

14 years agost/vega: Do not rely on st_resize_framebuffer.
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.

14 years agonvfx: fix for 64-bit systems
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.

14 years agogallium/auxiliary: make util_dynarray_trim do nothing if size == capacity
Luca Barbieri [Tue, 13 Apr 2010 06:24:48 +0000 (08:24 +0200)]
gallium/auxiliary: make util_dynarray_trim do nothing if size == capacity

14 years agogallium/auxiliary: add util_dynarray_resize
Luca Barbieri [Tue, 13 Apr 2010 06:23:29 +0000 (08:23 +0200)]
gallium/auxiliary: add util_dynarray_resize

14 years agogallium/auxiliary: fix util_dynarray_trim to 0 to free the data
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.

14 years agoutil: implement Jose Fonseca's suggestions for u_buffer.h -> u_dynarray.h
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.

14 years agor300/compiler: Hax around instructions limits in mirroring code.
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.

14 years agodocs: update name, link for mesa-dev list
Brian Paul [Tue, 13 Apr 2010 00:45:10 +0000 (18:45 -0600)]
docs: update name, link for mesa-dev list

14 years agoffvertex: don't touch tex coords if coord replace is enabled.
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>
14 years agor300g: add generating texture coordinates for point sprites
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>
14 years agoprogs/gallium: Move into src/gallium/tests
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

14 years agogallium/auxiliary: add dynamically sized buffer/array/vector
Luca Barbieri [Thu, 25 Feb 2010 12:11:12 +0000 (13:11 +0100)]
gallium/auxiliary: add dynamically sized buffer/array/vector

14 years agonvfx: add LRP in vertprog
Luca Barbieri [Thu, 25 Feb 2010 01:52:43 +0000 (02:52 +0100)]
nvfx: add LRP in vertprog

glsl generates these.

14 years agonvfx: add SIN and COS in vertprog
Luca Barbieri [Tue, 19 Jan 2010 16:26:20 +0000 (17:26 +0100)]
nvfx: add SIN and COS in vertprog

14 years agonvfx: add missing vertprog setcond instructions
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.

14 years agonvfx: allocate a bigger block for queries
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.

14 years agonvfx: support an unlimited number of occlusion queries
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.

14 years agor300g: Move declaration before code.
Vinson Lee [Mon, 12 Apr 2010 19:50:41 +0000 (12:50 -0700)]
r300g: Move declaration before code.

Fixes SCons build.

14 years agonvfx: fix TXL opcode value
Luca Barbieri [Mon, 22 Mar 2010 04:43:56 +0000 (05:43 +0100)]
nvfx: fix TXL opcode value

Was broken during unification

14 years agonvfx: Add support for two sided color
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.

14 years agonvfx: fix compile error
Luca Barbieri [Mon, 12 Apr 2010 18:43:08 +0000 (20:43 +0200)]
nvfx: fix compile error

14 years agonvfx: don't use hw index buffers on nv3x and nv44
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.

14 years agonvfx: expose PIPE_FORMAT_B8G8R8X8_UNORM support
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.

14 years agonvfx: add support for ARB_half_float_vertex
Luca Barbieri [Mon, 18 Jan 2010 16:38:29 +0000 (17:38 +0100)]
nvfx: add support for ARB_half_float_vertex

14 years agost/mesa: half float vertex support (unexposed)
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

14 years agonvfx: allocate buffers in GART if !NOUVEAU_SWTNL
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.

14 years agonvfx: move check for NOUVEAU_SWTNL
Luca Barbieri [Mon, 12 Apr 2010 16:06:06 +0000 (18:06 +0200)]
nvfx: move check for NOUVEAU_SWTNL

14 years agonvfx: remove #include "nouveau_stateobj.h"
Luca Barbieri [Tue, 23 Feb 2010 16:33:14 +0000 (17:33 +0100)]
nvfx: remove #include "nouveau_stateobj.h"

No longer used, finally!