Brian Paul [Thu, 3 Feb 2011 18:59:59 +0000 (11:59 -0700)]
cso: don't tell drivers to bind null samplers, sampler views
Before, the set_sampler_views() and restore_sampler_views() functions
used MAX2(old,new) to tell the driver how many samplers or sampler
views to set. This could result in cases such as:
pipe->set_fragment_sampler_views(pipe, 4, views={foo, bar, NULL, NULL})
Many/most gallium drivers would take this as-is and set
ctx->num_sampler_views=4 and ctx->sampler_views={foo, bar, NULL, NULL, ...}.
Later, loops over ctx->num_sampler_views would have to check for null
pointers. Worse, the number of sampler views and number of sampler CSOs
could get out of sync:
ctx->num_samplers = 2
ctx->samplers = {foo, bar, ...}
ctx->num_sampler_views = 4
ctx->sampler_views={Foo, Bar, NULL, NULL, ...}
So loops over the num_samplers could run into null sampler_views pointers
or vice versa.
This fixes a failed assertion in the SVGA driver when running the Mesa
engine demo in AA line mode (and possibly other cases).
It looks like all gallium drivers are careful to unreference views
and null-out sampler CSO pointers for the units beyond what's set
with the pipe::bind_x_sampler_states() and pipe::set_x_sampler_views()
functions.
I'll update the gallium docs to explain this as well.
Henri Verbeet [Thu, 3 Feb 2011 20:10:50 +0000 (21:10 +0100)]
r600g: Make some more things static.
Henri Verbeet [Thu, 3 Feb 2011 20:10:50 +0000 (21:10 +0100)]
r600g: Get rid of the unused r600_cf_vtx_tc() function.
Henri Verbeet [Thu, 3 Feb 2011 20:10:50 +0000 (21:10 +0100)]
r300g: Make the buffer and texture vbtls static const.
Henri Verbeet [Thu, 3 Feb 2011 20:10:50 +0000 (21:10 +0100)]
r600g: Make the buffer and texture vbtls static const.
Alex Deucher [Thu, 3 Feb 2011 19:35:54 +0000 (14:35 -0500)]
egl_dri2: Add new radeon pci ids
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Kristian Høgsberg [Thu, 3 Feb 2011 03:21:13 +0000 (22:21 -0500)]
egl_dri2: Split out drm platform implementation to a separate file
Kristian Høgsberg [Thu, 3 Feb 2011 03:10:40 +0000 (22:10 -0500)]
egl_dri2: Split out x11 platform code
Haitao Feng [Sun, 30 Jan 2011 08:03:35 +0000 (16:03 +0800)]
swrast: add an interface createNewContextForAPI
This new interface could set up context for OpenGL,
OpenGL ES1 and OpenGL ES2. It will be used by egl_dri2
driver.
Signed-off-by: Haitao Feng <haitao.feng@intel.com>
José Fonseca [Thu, 3 Feb 2011 16:14:02 +0000 (16:14 +0000)]
svga: Fix resource leak; undo temporary workaround.
Leak was introduced when fixing strict aliasing violation in this code:
the reference counting was preserved, but the destructor call on zero
reference count was not.
José Fonseca [Thu, 3 Feb 2011 15:14:59 +0000 (15:14 +0000)]
svga: Temporarily disable buffer DMA upload coalescing.
See comment for more details.
José Fonseca [Thu, 3 Feb 2011 15:06:39 +0000 (15:06 +0000)]
svga/drm: Flushing preemptively on a 1/3 of the aperture.
Exactly one half would be the ideal, but this is a soft limit, and one
more byte over brings us to synchronous behavior.
Flushing when the referred GMR exceeds one third of the aperture gives us
statistically better performance.
José Fonseca [Thu, 3 Feb 2011 15:05:03 +0000 (15:05 +0000)]
util: Prevent transfer dangling pointer on map failure.
José Fonseca [Thu, 3 Feb 2011 15:02:07 +0000 (15:02 +0000)]
svga: Don't call swc->flush directly.
Only svga_context_flush should do it, to ensure upload commands are not
submitted to hardware in an inconsistent state.
José Fonseca [Thu, 3 Feb 2011 15:01:09 +0000 (15:01 +0000)]
svga: Add an assert to catch reentrancy.
José Fonseca [Thu, 3 Feb 2011 13:59:58 +0000 (13:59 +0000)]
svga/drm: Update for pb_vtbl::map argument addition.
Michel Dänzer [Thu, 3 Feb 2011 12:25:16 +0000 (13:25 +0100)]
r300c: Unbreak after R4xx support was added to r300/compiler.
José Fonseca [Thu, 3 Feb 2011 09:12:11 +0000 (09:12 +0000)]
scons: Eliminate libgcc_s_sjlj-1.dll dependency
Certain mingw32 cross compilers (e.g. RedHat's) defaults to use DLL gcc
runtime.
Given the main deliverable from this project are self-contained drivers,
which are loaded by any application, this dependency can cause havoc.
Dave Airlie [Thu, 3 Feb 2011 03:43:37 +0000 (13:43 +1000)]
r600g: flush differences back to DB copy.
Dave Airlie [Tue, 1 Feb 2011 07:20:53 +0000 (17:20 +1000)]
r600g: fix depth hw resource copies.
With the previous fixes we can now enabled hw depth copies
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 3 Feb 2011 03:19:30 +0000 (13:19 +1000)]
r600g: only set depth bit for hw accessible depth buffers.
If we get a sw accessible buffer like the S8 texture we end up
doing depth tracking on it when there is no need since we won't
ever bind it to the hardware. This leads to a sw fallback in the
transfer destruction which leads to and endless recusion loop
of fail in transfer destroy.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 3 Feb 2011 03:12:35 +0000 (13:12 +1000)]
r600g: rework dirty / depth texture tracking.
this adds a flag to keep track of whether the depth texture structure
is the flushed texture or not, so we can avoid doing flushes when
we do a hw rendering from one to the other.
it also renames flushed to dirty_db which tracks if the DB copy
has been dirtied by being bound to the hw.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 3 Feb 2011 03:21:08 +0000 (13:21 +1000)]
r600g: set correct pitch/offset for depth textures in flushed state.
This fixes zreaddraw in tiling mode
Brian Paul [Thu, 3 Feb 2011 03:43:56 +0000 (20:43 -0700)]
softpipe: rename sampler[] -> fragment_samplers[]
Brian Paul [Thu, 3 Feb 2011 03:30:54 +0000 (20:30 -0700)]
softpipe: rename fragment sampler/view fields
To be consistant with vertex, geometry sampler fields.
Brian Paul [Thu, 3 Feb 2011 03:19:51 +0000 (20:19 -0700)]
cso: refactor texture sampler and sampler view code
This consolidates the code duplicated between the fragment sampler
and vertex sampler functions. Plus, it'll make adding support for
geometry shader samplers trivial.
Brian Paul [Thu, 3 Feb 2011 01:14:46 +0000 (18:14 -0700)]
cso: rename fragment sampler-related fields
To better distinguish from vertex sampler fields.
Brian Paul [Thu, 3 Feb 2011 01:11:27 +0000 (18:11 -0700)]
cso: fix loop bound in cso_set_vertex_samplers()
Before we were looping to nr_samplers, which is the number of fragment
samplers, not vertex samplers.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Chad Versace [Wed, 2 Feb 2011 18:15:19 +0000 (10:15 -0800)]
glcpp: Raise error when modulus is zero
For example, this now raises an error:
#define XXX 1 / 0
Fixes bug: https://bugs.freedesktop.org//show_bug.cgi?id=33507
Fixes Piglit test: spec/glsl-1.10/preprocessor/modulus-by-zero.vert
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Chad Versace [Tue, 1 Feb 2011 18:14:28 +0000 (10:14 -0800)]
glsl: Avoid division-by-zero during constant-folding
Avoid division-by-zero when constant-folding the following expression
types:
ir_unop_rsq
ir_binop_div
ir_binop_mod
Fixes bugs:
https://bugs.freedesktop.org//show_bug.cgi?id=33306
https://bugs.freedesktop.org//show_bug.cgi?id=33508
Fixes Piglit tests:
glslparsertest/glsl2/div-by-zero-01.frag
glslparsertest/glsl2/div-by-zero-02.frag
glslparsertest/glsl2/div-by-zero-03.frag
glslparsertest/glsl2/modulus-zero-01.frag
glslparsertest/glsl2/modulus-zero-02.frag
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Chad Versace [Tue, 1 Feb 2011 17:09:33 +0000 (09:09 -0800)]
glsl: Fix constant-folding for reciprocal expressions
Do not constant-fold a reciprocal if any component of the reciprocated
expression is 0. For example, do not constant-fold `1 / vec4(0, 1, 2, 3)`.
Incorrect, previous behavior
----------------------------
Reciprocals were constant-folded even when some component of the
reciprocated expression was 0. The incorrectly applied arithmetic was:
1 / 0 := 0
For example,
1 / vec4(0, 1, 2, 3) = vec4(0, 1, 1/2, 1/3)
NOTE: This is a candidate for the 7.9 and 7.10 branches.
José Fonseca [Wed, 2 Feb 2011 11:28:41 +0000 (11:28 +0000)]
svga: Flush upload buffers or we get asserts
Based on work from Jakob Bornecrantz, Michel Dänzer, and Brian Paul.
Kenneth Graunke [Wed, 2 Feb 2011 07:47:26 +0000 (23:47 -0800)]
glsl: Fix use of uninitialized values in _mesa_glsl_parse_state ctor.
This has probably existed since
e5e34ab18eeaffa465 or so.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Kenneth Graunke [Wed, 2 Feb 2011 07:31:35 +0000 (23:31 -0800)]
glsl: Fix invalid use of ralloc_asprintf in prototype_string.
This was my mistake when converting from talloc to ralloc. I was
confused because the other calls in the function are to asprintf_append
and the original code used str as the context rather than NULL.
Fixes bug #33823.
Christian König [Tue, 1 Feb 2011 23:24:34 +0000 (00:24 +0100)]
r600g: use burst exports in shaders
Join multiple exports into just one instruction
instead of exporting each register separately.
Alex Deucher [Wed, 2 Feb 2011 00:13:54 +0000 (19:13 -0500)]
r200: remove 0x4243 pci id
There's no such device. 0x4243 is a pci bridge id,
not a GPU.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Ian Romanick [Tue, 1 Feb 2011 21:35:36 +0000 (13:35 -0800)]
i915: Only mark a register as available if all components are written
Previously a register would be marked as available if any component
was written. This caused shaders such as this:
0: TEX TEMP[0].xyz, INPUT[14].xyyy, texture[0], 2D;
1: MUL TEMP[1], UNIFORM[0], TEMP[0].xxxx;
2: MAD TEMP[2], UNIFORM[1], TEMP[0].yyyy, TEMP[1];
3: MAD TEMP[1], UNIFORM[2], TEMP[0].zzzz, TEMP[2];
4: ADD TEMP[0].xyz, TEMP[1].xyzx, UNIFORM[3].xyzx;
5: TEX TEMP[1].w, INPUT[14].xyyy, texture[0], 2D;
6: MOV TEMP[0].w, TEMP[1].wwww;
7: MOV OUTPUT[2], TEMP[0];
8: END
to produce incorrect code such as this:
BEGIN
DCL S[0]
DCL T_TEX0
R[0] = MOV T_TEX0.xyyy
U[0] = TEXLD S[0],R[0]
R[0].xyz = MOV U[0]
R[1] = MUL CONST[0], R[0].xxxx
R[2] = MAD CONST[1], R[0].yyyy, R[1]
R[1] = MAD CONST[2], R[0].zzzz, R[2]
R[0].xyz = ADD R[1].xyzx, CONST[3].xyzx
R[0] = MOV T_TEX0.xyyy
U[0] = TEXLD S[0],R[0]
R[1].w = MOV U[0]
R[0].w = MOV R[1].wwww
oC = MOV R[0]
END
Note that T_TEX0 is copied to R[0], but the xyz components of R[0] are
still expected to hold a calculated value.
Fixes piglit tests draw-elements-vs-inputs, fp-kill, and
glsl-fs-color-matrix. It also fixes Meego bugzilla #13005.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Ian Romanick [Thu, 27 Jan 2011 20:24:27 +0000 (12:24 -0800)]
mesa: glGetUniform only returns a single element of an array
Also return it as the correct type. Previously the whole array would
be returned and each element would be expanded to a vec4.
Fixes piglit test getuniform-01 and bugzilla #29823.
José Fonseca [Tue, 1 Feb 2011 10:41:46 +0000 (10:41 +0000)]
glsl: Fix printf_length() on MSVC.
Kenneth Graunke [Tue, 1 Feb 2011 08:20:01 +0000 (00:20 -0800)]
glsl: Fix memory error when creating the supported version string.
Passing ralloc_vasprintf_append a 0-byte allocation doesn't work. If
passed a non-NULL argument, ralloc calls strlen to find the end of the
string. Since there's no terminating '\0', it runs off the end.
Fixes a crash introduced in
14880a510a1a288df0778395097d5a52806abfb0.
Dave Airlie [Tue, 1 Feb 2011 04:38:45 +0000 (14:38 +1000)]
r600g: just change tile type when buffer is set to depth.
Not 100% sure on this one, but this is how it should work,
the question is whether it will uncover other bugs elsewhere.
Dave Airlie [Tue, 1 Feb 2011 04:22:08 +0000 (14:22 +1000)]
r600g: align the tiling modes with what the DDX and kernel expects.
If we see a MACRO bit on r600g its 2D tiled,
if don't see a MACRO bit and we do see a MICRO bit then its 1D tiled.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Tue, 1 Feb 2011 03:06:35 +0000 (13:06 +1000)]
r600g: fix evergreen for depth decompress test
Dave Airlie [Tue, 1 Feb 2011 03:00:56 +0000 (13:00 +1000)]
r600: only decompress depth when its tile type is wrong.
If the tile type for the buffer is 1 then its been bound to the
DB at some point, we need to decompress it, otherwise its only
been bound as texture/cb so don't do anything.
This fixes 5 piglit tests here on r600g.
Kenneth Graunke [Tue, 1 Feb 2011 00:41:34 +0000 (16:41 -0800)]
texture_builtins.py: Fix a warning about mixed tabs/spaces.
Dave Airlie [Sat, 29 Jan 2011 11:25:37 +0000 (21:25 +1000)]
r600g: start looking at evergreen tiling.
this just adds the ioctl interface and sets the tile type
and array mode in the correct place.
This seems to bring eg 1D tiling to the same level, and issues
as on r600. No idea how to address 2D yet.
Henri Verbeet [Tue, 1 Feb 2011 00:17:02 +0000 (01:17 +0100)]
r600g: Actually use the info from the flushed depth texture when creating a sampler view on a depth texture.
R600/R700 was using incorrect tiling information from the (compressed) depth
buffer. Evergreen worked anyway because tiling doesn't work.
Ian Romanick [Mon, 31 Jan 2011 23:04:45 +0000 (15:04 -0800)]
glsl: Refresh autogenerated lexer and parser files.
For the previous commit.
Ian Romanick [Mon, 31 Jan 2011 23:02:24 +0000 (15:02 -0800)]
glsl: Reject shader versions not supported by the implementation
Previously we'd happily compile GLSL 1.30 shaders on any driver. We'd
also happily compile GLSL 1.10 and 1.20 shaders in an ES2 context.
This has been a long standing FINISHME in the compiler.
NOTE: This is a candidate for the 7.9 and 7.10 branches
Ian Romanick [Mon, 31 Jan 2011 22:52:27 +0000 (14:52 -0800)]
glsl: Ensure that all GLSL versions are supported in the stand-alone compiler
NOTE: This is a candidate for the 7.9 and 7.10 branches
Ian Romanick [Fri, 28 Jan 2011 01:51:55 +0000 (17:51 -0800)]
glsl: Fix dependencies / linkage for glsl_compiler
Ian Romanick [Mon, 31 Jan 2011 21:46:16 +0000 (13:46 -0800)]
mesa: Initial size for secondary color array is 3
See table 6.7 on page 347 of the OpenGL 3.0 specification.
Christian König [Mon, 31 Jan 2011 22:38:10 +0000 (23:38 +0100)]
r600g: fix invalid ref count handling in r600_set_constant_buffer
Only decrement ref count if r600_upload_const_buffer
really changes the buffer.
Brian Paul [Mon, 31 Jan 2011 21:09:17 +0000 (14:09 -0700)]
llvmpipe: fix incorrect array index in image dump code
Brian Paul [Mon, 31 Jan 2011 21:08:47 +0000 (14:08 -0700)]
glsl: regerated files
Brian Paul [Mon, 31 Jan 2011 21:08:22 +0000 (14:08 -0700)]
glsl: make _token_list_is_empty_ignoring_space() static
To silence warning about missing prototype.
Brian Paul [Mon, 31 Jan 2011 21:07:12 +0000 (14:07 -0700)]
scons/glsl: add top-level 'include' dir to CPPPATH
To avoid using the /usr/include/GL/gl.h file which may be lacking
some special #defines.
Brian Paul [Mon, 31 Jan 2011 21:06:38 +0000 (14:06 -0700)]
glsl: add cast to silence signed/unsigned comparison warning
José Fonseca [Mon, 31 Jan 2011 20:52:18 +0000 (20:52 +0000)]
glsl: Define va_copy on MSVC.
Kenneth Graunke [Mon, 27 Dec 2010 11:21:23 +0000 (03:21 -0800)]
i965: Emit texel offsets in sampler messages.
Kenneth Graunke [Sun, 9 Jan 2011 07:53:51 +0000 (23:53 -0800)]
glsl/builtins: Uncomment prototypes for texture*Offset functions.
Kenneth Graunke [Sun, 9 Jan 2011 07:53:11 +0000 (23:53 -0800)]
texture_builtins.py: Generate texture*Offset functions.
Kenneth Graunke [Mon, 27 Dec 2010 10:53:43 +0000 (02:53 -0800)]
texture_builtins.py: Generalize the "use_proj" field to support offsets.
Rather than passing "True", pass a bitfield describing the particular
variant's features - either projection or offset.
This should make the code a bit more readable ("Proj" instead of "True")
and make it easier to support offsets in the future.
Kenneth Graunke [Mon, 27 Dec 2010 10:50:42 +0000 (02:50 -0800)]
texture_builtins.py: Refactor coordinate dimension calculations.
For offsets, we'll want the straight sampler dimensionality, without the
+1 for array types. Create a new function to do that; refactor.
Kenneth Graunke [Wed, 12 Jan 2011 23:37:37 +0000 (15:37 -0800)]
glsl: Introduce a new "const_in" variable mode.
This annotation is for an "in" function parameter for which it is only legal
to pass constant expressions. The only known example of this, currently,
is the textureOffset functions.
This should never be used for globals.
Kenneth Graunke [Sun, 9 Jan 2011 07:49:23 +0000 (23:49 -0800)]
glsl: Change texel offsets to a single vector rvalue.
Having these as actual integer values makes it difficult to implement
the texture*Offset built-in functions, since the offset is actually a
function parameter (which doesn't have a constant value).
The original rationale was that some hardware needs these offset baked
into the instruction opcode. However, at least i965 should be able to
support non-constant offsets. Others should be able to rely on inlining
and constant propagation.
Kenneth Graunke [Mon, 31 Jan 2011 19:01:27 +0000 (11:01 -0800)]
glsl: Re-synchronize ir_variable_mode and the printer's string array.
Since the introduction of ir_var_system_value, system variables would be
printed as "temporary" and temporaries would result in out-of-bounds
array access, showing up as garbage in printed IR.
Vinson Lee [Mon, 31 Jan 2011 18:46:30 +0000 (10:46 -0800)]
scons: Gracefully handle pkg-config errors with libdrm_radeon.
Print warnings and continue build.
Kenneth Graunke [Mon, 24 Jan 2011 18:36:15 +0000 (10:36 -0800)]
Remove the talloc sources from the Mesa repository.
Kenneth Graunke [Mon, 24 Jan 2011 18:35:48 +0000 (10:35 -0800)]
Remove talloc from the SCons build system.
Kenneth Graunke [Mon, 17 Jan 2011 00:01:54 +0000 (16:01 -0800)]
Remove talloc from the make and automake build systems.
Kenneth Graunke [Fri, 21 Jan 2011 23:02:56 +0000 (15:02 -0800)]
ralloc: a new MIT-licensed recursive memory allocator.
Kenneth Graunke [Fri, 21 Jan 2011 22:32:31 +0000 (14:32 -0800)]
Convert everything from the talloc API to the ralloc API.
Kenneth Graunke [Sat, 15 Jan 2011 23:16:10 +0000 (15:16 -0800)]
ralloc: Add a fake implementation of ralloc based on talloc.
Henri Verbeet [Mon, 31 Jan 2011 17:09:19 +0000 (18:09 +0100)]
glx: Properly check for a valid fd in dri2CreateScreen().
Signed-off-by: Brian Paul <brianp@vmware.com>
Michel Dänzer [Fri, 28 Jan 2011 15:09:05 +0000 (16:09 +0100)]
svga: Fix translation of TGSI SSG opcode.
SVGA3D only supports SGN for vertex shaders, and this requires two additional
temporary registers for intermediate results.
For fragment shaders, lower to two CMPs and one ADD.
Michel Dänzer [Fri, 28 Jan 2011 15:09:04 +0000 (16:09 +0100)]
svga: TEXLDL opcode dst/src register information is correct.
Michel Dänzer [Fri, 28 Jan 2011 15:09:04 +0000 (16:09 +0100)]
svga: Print the number and mnemonic of the opcode we're missing information for.
Makes it easier to figure out which opcode it's about.
Henri Verbeet [Sat, 29 Jan 2011 23:00:50 +0000 (15:00 -0800)]
glx: Fix leaks in DRISW screen creation error paths.
Signed-off-by: Brian Paul <brianp@vmware.com>
Henri Verbeet [Sat, 29 Jan 2011 23:00:49 +0000 (15:00 -0800)]
glx: Fix leaks in DRI screen creation error paths.
Signed-off-by: Brian Paul <brianp@vmware.com>
Henri Verbeet [Sat, 29 Jan 2011 23:00:48 +0000 (15:00 -0800)]
glx: Fix leaks in DRI2 screen creation error paths.
Signed-off-by: Brian Paul <brianp@vmware.com>
Julien Cristau [Wed, 26 Jan 2011 12:03:17 +0000 (04:03 -0800)]
glx: fix length of GLXGetFBConfigsSGIX
The extra length is the size of the request *minus* the size of the
VendorPrivate header, not the addition.
NOTE: This is a candidate for the 7.9 and 7.10 branches
Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
Julien Cristau [Wed, 26 Jan 2011 12:03:16 +0000 (04:03 -0800)]
glx: fix GLXChangeDrawableAttributesSGIX request
xGLXChangeDrawableAttributesSGIXReq follows the GLXVendorPrivate header
with a drawable, number of attributes, and list of (type, value)
attribute pairs. Don't forget to put the number of attributes in there.
I don't think this can ever have worked.
NOTE: This is a candidate for the 7.9 and 7.10 branches
Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
Dave Airlie [Mon, 31 Jan 2011 10:44:47 +0000 (20:44 +1000)]
r600g: fix eg OQ properly.
the context init is separate for these gpus.
Alex Deucher [Mon, 31 Jan 2011 07:47:54 +0000 (02:47 -0500)]
r600g: fix OQ on evergreen
6xx/7xx have a max of 4 DBs, evergreen have a max of 8.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Dave Airlie [Mon, 31 Jan 2011 06:03:29 +0000 (16:03 +1000)]
r600g: fix occlusion query results.
Like on some r5xx, there are multiple DB backends on the r600,
we need to add up the query results from each of these to get the
final correct value.
So far I'm not 100% sure how to calculate the num_db, value
setting it to 4 should be harmless enough until we do.
This fixes occulsion_query piglit test on my rv740.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Alex Deucher [Mon, 31 Jan 2011 03:41:13 +0000 (22:41 -0500)]
r600g: remove some non-existent evergreen reg fields
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Dave Airlie [Mon, 31 Jan 2011 03:03:10 +0000 (13:03 +1000)]
r600g: fix regression in cubemap tests since
eea1d8199b376f37027c14669e0bdf991a22872d
Although CUBE is a reduction inst, it writes to more than just PV.X
so we need to keep the dst channel.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Mon, 31 Jan 2011 00:01:06 +0000 (10:01 +1000)]
r600g: handle the write all cbufs property.
This only works on r600/r700 so far, evergreen doesn't appear
to have the multiwrite enable bit in the color control, so we
may have to actually do a shader rewrite on EG hardware.
remove some duplicate code reg defines also.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Henri Verbeet [Sun, 30 Jan 2011 17:57:39 +0000 (18:57 +0100)]
util: Call tables should be const.
Henri Verbeet [Sun, 30 Jan 2011 17:57:39 +0000 (18:57 +0100)]
r600g: Update the flushed depth texture after drawing to the corresponding texture.
I know Jerome will probably rewrite the way depth textures work sometime
soon. For the time being this should at least make common depth texture usage
for shadowing work properly though.
Chia-I Wu [Sun, 30 Jan 2011 14:54:40 +0000 (22:54 +0800)]
st/vega: Disable blending when the paint is opaque.
When the paint is opaque (currently, solid color with alpha 1.0f), no
blending is needed for VG_BLEND_SRC_OVER. This eliminates the serious
performance hit introduced by
859106f196ade77f59f8787b071739901cd1a843
for a common scenario.
Chia-I Wu [Sun, 30 Jan 2011 15:09:42 +0000 (23:09 +0800)]
st/vega: Remove an invalid sanity check.
Before create_handle returns, obj->handle is 0. Calling
handle_to_object will fail.
Chia-I Wu [Sun, 30 Jan 2011 08:38:12 +0000 (16:38 +0800)]
st/vega: s/vg[A-Z]/vega[A-Z]/.
José Fonseca [Sun, 30 Jan 2011 11:17:07 +0000 (11:17 +0000)]
scons: We have C++ in several libraries, so always link with the C++ compiler
Prevents missing symbols in libGL.so when LLVM is disabled.
Vinson Lee [Sun, 30 Jan 2011 09:08:54 +0000 (01:08 -0800)]
r600g: Fix void pointer arithmetic.
Fixes SCons build.
Dave Airlie [Sun, 30 Jan 2011 08:07:10 +0000 (18:07 +1000)]
r600g: fixes a segfault in the piglit fbo-genmipmap-formats test.
should be no need to unset this ptr here and if we don't end up using the
blitter we've just broken the state.
Tom Stellard [Sat, 29 Jan 2011 22:37:58 +0000 (14:37 -0800)]
r300/compiler: Standardize the number of bits used by swizzle fields
Swizzles are now defined everywhere as a field with 12 bits that contains
4 channels worth of meaningful information. Any channel that is unused is
set to RC_SWIZZLE_UNUSED. This change is necessary because rgb instructions
and alpha instructions were initializing channels that would never be used
(channel 3 for rgb and channels 1-3 for alpha) with 0 (aka RC_SWIZZLE_X).
This made it impossible to use generic helper functions for swizzles,
because sometimes a channel value of 0 meant unused and other times it
meant RC_SWIZZLE_X.
All hacks that tried to guess how many channels were relevant have
also been removed.
Marek Olšák [Sat, 29 Jan 2011 15:53:48 +0000 (16:53 +0100)]
r300g: upload translated indices via the uploader
Marek Olšák [Sat, 29 Jan 2011 12:58:02 +0000 (13:58 +0100)]
r300g: rework vertex format fallback
1) Only translate the [min_index, max_index] range.
2) Upload translated vertices via the uploader.
3) Rename valid_vertex_buffer[] to real_vertex_buffer[]