Marek Olšák [Thu, 23 Sep 2010 12:24:52 +0000 (14:24 +0200)]
r300g: make accessing map_list and buffer_handles thread-safe
NOTE: This is a candidate for the 7.9 branch.
Marek Olšák [Thu, 23 Sep 2010 11:59:42 +0000 (13:59 +0200)]
r300g: fixup long-lived BO maps being incorrectly unmapped when flushing
Based on commit
3ddc714b20ac4e28b80c6f88d1993445fff2262c by Dave Airlie.
NOTE: This is a candidate for the 7.9 branch.
Marek Olšák [Thu, 23 Sep 2010 18:39:27 +0000 (20:39 +0200)]
util: make calling remove_from_list multiple times in a row safe
This commit fixes an infinite loop in foreach_s if remove_from_list is used
more than once on the same item with other list operations in between.
NOTE: This is a candidate for the 7.9 branch because the commit
"r300g: fixup long-lived BO maps being incorrectly unmapped when flushing"
depends on it.
Eric Anholt [Thu, 23 Sep 2010 23:34:10 +0000 (16:34 -0700)]
i915: Remove a dead if (0) block.
Eric Anholt [Thu, 23 Sep 2010 23:30:58 +0000 (16:30 -0700)]
intel: Remove dead intelIsTextureResident().
It always returned 1 (GL_TRUE), which is the same thing that happens when
the driver hook isn't present.
Eric Anholt [Thu, 23 Sep 2010 23:19:18 +0000 (16:19 -0700)]
unichrome: Mostly revert my convolution removal changes.
For this driver, the minimum pitch alignment stuff does appear to be
necessary, so leave the separate munged width/height variable in
place.
Eric Anholt [Thu, 23 Sep 2010 23:13:50 +0000 (16:13 -0700)]
radeon: Remove copied minimum pitch alignment code.
This is already covered by radeon_mipmap_tree.c, and my convolution
cleanups broke in the presence of this code. Thanks to Marek Olšák
for tracking down the relevant miptree code for me.
Eric Anholt [Thu, 23 Sep 2010 22:12:21 +0000 (15:12 -0700)]
intel: Replace my intel_texture_bitmap code with _mesa_meta_Bitmap.
The meta code is more general than mine, and appears to pass the same
sets of tests (piglit + some oglconform).
Eric Anholt [Thu, 23 Sep 2010 22:47:53 +0000 (15:47 -0700)]
intel: Remove unnecessary minimum pitch alignment to 32 bytes.
This broke with the cleanup I did in convolution removal. It's
unnecessary anyway since region_alloc_tiled adjusts pitches for us (64
byte alignment)
Tom Stellard [Mon, 20 Sep 2010 05:44:19 +0000 (22:44 -0700)]
r300g: Always try to build libr300compiler.a
Make libr300compiler.a a PHONY target so that this library will always be
built. This fixes the problem of libr300compiler.a not being updated
when r300g is being built and r300c is not.
This is a candidate for the Mesa 7.9 branch.
Eric Anholt [Thu, 23 Sep 2010 21:57:25 +0000 (14:57 -0700)]
intel: Remove disabled stencil drawpixels acceleration.
We still retain the fallback override for GL_STENCIL_INDEX, because
the metaops version fails at oglconform.
Dave Airlie [Thu, 23 Sep 2010 21:45:45 +0000 (07:45 +1000)]
r300g: fix point sprite coord.
handled elsewhere now.
thanks to Droste on irc for pointing out the fix
Jerome Glisse [Wed, 22 Sep 2010 21:37:30 +0000 (17:37 -0400)]
r600g: initial evergreen support in new path
This doesn't work yet.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Tilman Sauerbeck [Thu, 23 Sep 2010 20:30:46 +0000 (22:30 +0200)]
r600g: Destroy the blitter.
Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
Eric Anholt [Fri, 10 Sep 2010 02:37:15 +0000 (19:37 -0700)]
mesa: Remove EXT_convolution.
More optional code.
Eric Anholt [Thu, 9 Sep 2010 23:58:48 +0000 (16:58 -0700)]
mesa: Remove SGI_color_matrix.
Another optional ARB_imaging subset extension.
Eric Anholt [Thu, 9 Sep 2010 23:25:17 +0000 (16:25 -0700)]
mesa: Remove SGI_color_table.
Another optional ARB_imaging subset extension.
Eric Anholt [Thu, 9 Sep 2010 23:10:22 +0000 (16:10 -0700)]
mesa: Remove EXT_histogram.
This has always been optional, and not useful.
Eric Anholt [Thu, 9 Sep 2010 22:53:55 +0000 (15:53 -0700)]
mesa: Remove the non-required ARB_imaging extension.
Many of the EXT_ extensions in the subset have significant code
overhead with no users. It is not a required part of GL -- though
text describing the extension is part of the core spec since 1.2, it
is always conditional on the ARB_imaging extension.
Luca Barbieri [Thu, 23 Sep 2010 14:29:29 +0000 (16:29 +0200)]
d3d1x: obliterate IDL parameter names from d3d10.idl from Wine too
Luca Barbieri [Thu, 23 Sep 2010 14:21:14 +0000 (16:21 +0200)]
d3d1x: add autogenerated files as prerequisites, so make builds them
Luca Barbieri [Thu, 23 Sep 2010 14:18:52 +0000 (16:18 +0200)]
d3d1x: fix build without system EGL/egl.h
Luca Barbieri [Thu, 23 Sep 2010 14:17:36 +0000 (16:17 +0200)]
d3d1x: add missing guid.cpp
Luca Barbieri [Thu, 23 Sep 2010 14:08:37 +0000 (16:08 +0200)]
d3d1x: flush properly
Luca Barbieri [Thu, 23 Sep 2010 14:07:33 +0000 (16:07 +0200)]
d3d1x: remove another include specstrings.h
Luca Barbieri [Thu, 23 Sep 2010 14:02:58 +0000 (16:02 +0200)]
d3d1x: flush the pipe context when presenting
Luca Barbieri [Thu, 23 Sep 2010 14:02:45 +0000 (16:02 +0200)]
d3d1x: remove specstrings.h include
Luca Barbieri [Thu, 23 Sep 2010 13:45:13 +0000 (15:45 +0200)]
d3d11: obliterate IDL parameter names
Luca Barbieri [Thu, 23 Sep 2010 13:38:33 +0000 (15:38 +0200)]
d3d1x: rename parameters in dxgi
Luca Barbieri [Thu, 23 Sep 2010 13:22:54 +0000 (15:22 +0200)]
d3d1x: rename params in misc and objects
Luca Barbieri [Thu, 23 Sep 2010 13:02:59 +0000 (15:02 +0200)]
d3d11: rename screen params
Luca Barbieri [Thu, 23 Sep 2010 12:22:10 +0000 (14:22 +0200)]
d3d1x: rename context params
Luca Barbieri [Thu, 23 Sep 2010 11:55:36 +0000 (13:55 +0200)]
d3d1x: minifix
Luca Barbieri [Thu, 23 Sep 2010 11:52:34 +0000 (13:52 +0200)]
d3d1x: remove specstrings
Luca Barbieri [Thu, 23 Sep 2010 11:44:22 +0000 (13:44 +0200)]
d3d1x: normalize whitespace
Luca Barbieri [Thu, 23 Sep 2010 11:31:30 +0000 (13:31 +0200)]
d3d1x: s/tpf/sm4/g
Luca Barbieri [Thu, 23 Sep 2010 11:17:45 +0000 (13:17 +0200)]
d3d1x: autogenerate shader enums and text from def files
This avoids the duplication in tpf.h and tpf_text.cpp
Luca Barbieri [Thu, 23 Sep 2010 09:58:09 +0000 (11:58 +0200)]
d3d1x: initialize the mutex
José Fonseca [Thu, 26 Aug 2010 14:30:51 +0000 (15:30 +0100)]
draw: Prevent clipped vertices overflow.
Some pathological triangles cause a theoritically impossible number of
clipped vertices.
The clipper will still assert, but at least release builds will not
crash, while this problem is further investigated.
Keith Whitwell [Thu, 23 Sep 2010 15:11:17 +0000 (16:11 +0100)]
draw: don't apply flatshading to clipped tris with <3 verts
If a triangle was completely culled by clipping, we would still try to
fix up its provoking vertex.
Luca Barbieri [Thu, 23 Sep 2010 01:49:17 +0000 (03:49 +0200)]
d3d1x: bind NULL CSOs before destroying default CSOs on context dtor
Otherwise softpipe and llvmpipe assert.
Luca Barbieri [Thu, 23 Sep 2010 01:35:50 +0000 (03:35 +0200)]
d3d1x: fix deadlocks on non-recursive mutex
Dave Airlie [Thu, 23 Sep 2010 06:12:23 +0000 (16:12 +1000)]
egl: fix build since
17eace581d25a626a7d75d9d1205d012cbb14a6e
looks like mesa st didn't get updated.
Dave Airlie [Thu, 23 Sep 2010 06:02:54 +0000 (16:02 +1000)]
r600g: fix warnings since last commit.
Dave Airlie [Thu, 23 Sep 2010 03:34:36 +0000 (13:34 +1000)]
r600g: use blitter to do db->cb flushing.
use the blitter + custom stage to avoid doing a whole lot of state
setup by hand. This makes life a lot easier for doing this on evergreen
it also keeps all the state setup in one place.
We setup a custom context state at the start with a flag to denote
its for the flush, when it gets generated we generate the correct state
for the flush and no longer have to do it all by hand.
this should also make adding texture *to* depth easier.
Dave Airlie [Thu, 23 Sep 2010 04:18:22 +0000 (14:18 +1000)]
u_blitter: add a custom blitter call passing a dsa cso
reimplement the flush stage added for r300 to allow a custom DSA stage
to be used in the pipeline, this allows for r600 hw DB->CB flushes.
Luca Barbieri [Thu, 23 Sep 2010 01:10:50 +0000 (03:10 +0200)]
d3d1x: properly reference count the backend
Kristian Høgsberg [Thu, 23 Sep 2010 02:01:17 +0000 (22:01 -0400)]
dri: Pass the __DRIscreen and the __DRIscreen private back to image lookup
We will typically have a current context when we need to lookup the image,
but the lookup implementation don't need it so drop it.
Zack Rusin [Thu, 23 Sep 2010 00:40:44 +0000 (20:40 -0400)]
rbug: fix rbug when contexts are being destroyed
Dave Airlie [Thu, 23 Sep 2010 00:30:35 +0000 (10:30 +1000)]
r600g: fix typo in evergreen register list
pointed out by glisse on irc.
Dave Airlie [Thu, 23 Sep 2010 00:20:56 +0000 (10:20 +1000)]
r600g: fix depth readback on rv610 and other quirky variants.
at least zreaddraw works for me here now on my rv610
Dave Airlie [Thu, 23 Sep 2010 00:01:08 +0000 (10:01 +1000)]
r600g: use floats instead of hex for blit vbo
once I go past 0x3f80000, I can't translate hex to float in-brain anymore.
Eric Anholt [Wed, 22 Sep 2010 21:58:29 +0000 (14:58 -0700)]
i965: Warning fix for vector result any_nequal/all_equal change.
Eric Anholt [Wed, 22 Sep 2010 21:52:38 +0000 (14:52 -0700)]
i965: Update expression splitting for the vector-result change to compares.
Fixes:
glsl1-precision exp2
glsl1-precision log2
Eric Anholt [Wed, 22 Sep 2010 21:40:40 +0000 (14:40 -0700)]
i965: When splitting vector variable assignment, ignore unset channels.
The new checks for sanity in ir_assignment creation got angry about
this write_mask == 0. Fixes:
glsl-fs-dot-vec2.
glsl-fs-atan-2
glsl-fs-dot-vec2
Kristian Høgsberg [Wed, 22 Sep 2010 21:34:00 +0000 (17:34 -0400)]
glx: Invalidate buffers after binding a drawable
If the server doesn't send invalidate events, we may miss a
resize before the rendering starts. Invalidate the buffers now
so the driver will recheck before rendering starts.
https://bugs.freedesktop.org/show_bug.cgi?id=29984
https://bugs.freedesktop.org/show_bug.cgi?id=30155
Eric Anholt [Wed, 22 Sep 2010 21:14:30 +0000 (14:14 -0700)]
i965: Fix the vector/expression splitting for the write_mask change.
+113 piglits.
Jakob Bornecrantz [Wed, 22 Sep 2010 20:29:15 +0000 (22:29 +0200)]
tgsi: Fix missing test before check
As introduced with commit
d21301675c249602e19310d5b62fad424f2f2ac2
NOTE: This is a candidate for the 7.9 branch.
Eric Anholt [Wed, 22 Sep 2010 20:07:57 +0000 (13:07 -0700)]
ir_to_mesa: Only compare vector_elements present for any_nequal/all_equal
Fixes: glsl-mat-from-int-ctor-03
Eric Anholt [Wed, 22 Sep 2010 18:43:58 +0000 (11:43 -0700)]
glsl: Fix copy'n'wasted ir_noop_swizzle conditions.
It considered .xyyy a noop for vec4 instead of .xyzw, and similar for vec3.
Eric Anholt [Wed, 22 Sep 2010 18:47:03 +0000 (11:47 -0700)]
glsl: Rework assignments with write_masks to have LHS chan count match RHS.
It turns out that most people new to this IR are surprised when an
assignment to (say) 3 components on the LHS takes 4 components on the
RHS. It also makes for quite strange IR output:
(assign (constant bool (1)) (x) (var_ref color) (swiz x (var_ref v) ))
(assign (constant bool (1)) (y) (var_ref color) (swiz yy (var_ref v) ))
(assign (constant bool (1)) (z) (var_ref color) (swiz zzz (var_ref v) ))
But even worse, even we get it wrong, as shown by this line of our
current step(float, vec4):
(assign (constant bool (1)) (w)
(var_ref t)
(expression float b2f (expression bool >=
(swiz w (var_ref x))(var_ref edge))))
where we try to assign a float to the writemasked-out x channel and
don't supply anything for the actual w channel we're writing. Drivers
right now just get lucky since ir_to_mesa spams the float value across
all the source channels of a vec4.
Instead, the RHS will now have a number of components equal to the
number of components actually being written. Hopefully this confuses
everyone less, and it also makes codegen for a scalar target simpler.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Luca Barbieri [Wed, 22 Sep 2010 17:33:54 +0000 (19:33 +0200)]
d3d1x: add Wine dlls (tri, tex working, but no other testing)
Luca Barbieri [Wed, 22 Sep 2010 17:31:54 +0000 (19:31 +0200)]
d3d1x: define GUIDs in the normal way
Luca Barbieri [Wed, 22 Sep 2010 17:31:34 +0000 (19:31 +0200)]
d3d1x: fix API name
Luca Barbieri [Wed, 22 Sep 2010 11:51:53 +0000 (13:51 +0200)]
d3d1x: redesign the HWND resolver interface
This one should be powerful enough to hook up Wine.
Luca Barbieri [Wed, 22 Sep 2010 17:04:36 +0000 (19:04 +0200)]
d3d1x: fix GUID declarations
Luca Barbieri [Wed, 22 Sep 2010 14:29:36 +0000 (16:29 +0200)]
d3d1x: destroy native_display on adapter destruction
Kristian Høgsberg [Wed, 22 Sep 2010 19:07:15 +0000 (15:07 -0400)]
dri2: Make createImageFromName() take a __DRIscreen instead of __DRIcontext
We can't expect to have a context when this is called, and we don't need one
so just require a __DRIscreen instead.
Reported by Yu Dai <yu.dai@intel.com>
Jerome Glisse [Wed, 22 Sep 2010 18:59:09 +0000 (14:59 -0400)]
r600g: fix multiple occlusion query on same id
When calling query begin using same query id we need to discard
previous query results.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Jerome Glisse [Wed, 22 Sep 2010 18:00:53 +0000 (14:00 -0400)]
r600g: disable shader rebuild optimization & account cb flush packet
Shader rebuild should be more clever, we should store along each
shader all the value that change shader program rather than using
flags in context (ie change sequence like : change vs buffer, draw,
change vs buffer, switch shader will trigger useless shader rebuild).
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Brian Paul [Wed, 22 Sep 2010 17:20:48 +0000 (11:20 -0600)]
llvmpipe: fix sprite texcoord setup for non-projective texturing
Normally the Mesa state tracker uses TXP instructions for texturing.
But if a fragment shader uses texture2D() that's a TEX instruction.
In that case we were incorrectly computing the texcoord coefficients
in the point sprite setup code. Some new comments in the code explain
things.
Brian Paul [Wed, 22 Sep 2010 15:30:16 +0000 (09:30 -0600)]
configs: remove egl-swrast target from linux-dri config
Kristian Høgsberg [Wed, 22 Sep 2010 15:01:11 +0000 (11:01 -0400)]
intel: Fix GL_ARB_shading_language_120 commit
Fix commit
e7087175f8a04f777403366fb34b58edd00f4d60. Move the reference to
GL_VERSION_2_1_functions to intel_extensions.c where it's available,
don't try to enable a non-existing extension and advertise 1.20 for all
intel chipsets, not just GEN4 and up.
Jerome Glisse [Wed, 22 Sep 2010 14:32:44 +0000 (10:32 -0400)]
r600g: flush color buffer after draw command
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
José Fonseca [Wed, 22 Sep 2010 14:02:10 +0000 (15:02 +0100)]
llvmpipe: Make rgb/alpha bland func/factors match, when there is no alpha.
Makes AoS blending easier, and state more canonical.
José Fonseca [Wed, 22 Sep 2010 13:48:28 +0000 (14:48 +0100)]
llvmpipe: Special case complementary and identify blend factors in SoA.
One multiplication instead of two.
Also fix floating point random number generation and verification.
TODO: Do the same for AoS blending.
José Fonseca [Sat, 11 Sep 2010 12:21:44 +0000 (13:21 +0100)]
gallivm: Add unorm support to lp_build_lerp()
Unfortunately this can cause segfault with LLVM 2.6, if x is a constant.
José Fonseca [Sat, 11 Sep 2010 12:20:27 +0000 (13:20 +0100)]
util: Flush stdout on util_format.
Luca Barbieri [Wed, 22 Sep 2010 11:54:07 +0000 (13:54 +0200)]
d3d1x: fix segfault when hashing
Luca Barbieri [Wed, 22 Sep 2010 11:25:45 +0000 (13:25 +0200)]
d3d1x: fix warning
Luca Barbieri [Wed, 22 Sep 2010 11:24:55 +0000 (13:24 +0200)]
d3d1x: fix cf analysis
Luca Barbieri [Wed, 22 Sep 2010 11:22:00 +0000 (13:22 +0200)]
d3d1x: link with CXXFLAGS
Otherwise, -m32 doesn't make it there.
Luca Barbieri [Wed, 22 Sep 2010 11:21:13 +0000 (13:21 +0200)]
d3d1x: add missing memory barrier
Luca Barbieri [Wed, 22 Sep 2010 09:35:05 +0000 (11:35 +0200)]
d3d1x: don't build progs automatically
progs requires winsys, which hasn't yet been built by the time we
go into state_trackers.
It may be a good idea to also move it into tests.
After a normal build, run make in src/gallium/state_trackers/d3d1x/progs
to build them.
Luca Barbieri [Wed, 22 Sep 2010 07:37:23 +0000 (09:37 +0200)]
winsys: automatically build sw winsys needed by EGL and d3d1x
A cleaner solution would be preferable, but this does no harm and works.
Luca Barbieri [Wed, 22 Sep 2010 05:44:59 +0000 (07:44 +0200)]
glx: decouple dri2.c and GLX, fixing Gallium EGL and d3d1x build
The Gallium EGL state tracker reuses dri2.c but not the GLX code.
Currently there is a bit of code in dri2.c that is incorrectly tied
to GLX: instead, make it call an helper that both GLX and Gallium EGL
implement, like dri2InvalidateBuffers.
This avoids a link error complaining that dri2GetGlxDrawableFromXDrawableId
is undefined.
Note that we might want to move the whole event translation elsewhere,
and probably stop using non-XCB DRI2 altogether, but this seems to be
the minimal fix.
Luca Barbieri [Wed, 22 Sep 2010 05:17:38 +0000 (07:17 +0200)]
nvfx: remove gl_PointCoord hack
Now Gallium has the proper fix, thanks to Brian Paul.
Luca Barbieri [Wed, 22 Sep 2010 05:15:15 +0000 (07:15 +0200)]
d3d1x: attempt to fix/workaround bug #30322
This may just be hiding some other bug though, since the types are supposed
to be the same (and it compiles for me).
Anyway, this interface will likely need to changed, since it seems Wine needs
a more powerful one capable of expressing window subregions and called at
every Present.
Dave Airlie [Wed, 22 Sep 2010 04:27:58 +0000 (14:27 +1000)]
r600g: disable dirty handling on texture from depth code.
nothing was every dirtying the object again, the mesa-demos
reflect test was just stalling.
this fixes glean readPixSanity.
Dave Airlie [Wed, 22 Sep 2010 04:19:16 +0000 (14:19 +1000)]
r600g: make stencil readback work
need to write two components to get stencil components as well
Dave Airlie [Wed, 22 Sep 2010 02:57:45 +0000 (12:57 +1000)]
r600g: cleanup some of the DB blit code
add cb/db flush states to the blit code.
add support for the rv6xx that need special treatment.
according to R6xx_7xx_3D.pdf
set r700 CB_SHADER_CONTROL reg in blit code
docs say dual export should be disabled for DB->CB
Dave Airlie [Tue, 21 Sep 2010 03:16:32 +0000 (13:16 +1000)]
r600g: fix typo in struct member name
Jerome Glisse [Wed, 22 Sep 2010 00:24:51 +0000 (20:24 -0400)]
r600g: occlusion query for new design
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Brian Paul [Wed, 22 Sep 2010 00:13:02 +0000 (18:13 -0600)]
mesa: don't advertise bogus GL_ARB_shading_language_120 extension
Instead of using the invalid GL_ARB_shading_language_120 extension to
determine the GLSL version, use a new ctx->Const.GLSLVersion field.
Updated the intel and r600 drivers, but untested.
See fd.o bug 29910
NOTE: This is a candidate for the 7.9 branch (but let's wait and see if
there's any regressions).
Vinson Lee [Tue, 21 Sep 2010 22:17:52 +0000 (15:17 -0700)]
glut: Define eventParser for non-Windows only.
Fixes this GCC warning on MinGW build.
glut_input.c:295: warning: 'eventParser' defined but not used
Vinson Lee [Tue, 21 Sep 2010 22:11:00 +0000 (15:11 -0700)]
glut: Define markWindowHidden for non-Windows only.
Fixes this GCC warning on MinGW build.
glut_event.c:255: warning: 'markWindowHidden' defined but not used
Brian Paul [Tue, 21 Sep 2010 21:29:26 +0000 (15:29 -0600)]
softpipe: add missing calls to set draw vertex samplers/views
Part of the fix for running softpipe w/ LLVM-enabled draw module.
Brian Paul [Tue, 21 Sep 2010 21:25:31 +0000 (15:25 -0600)]
gallivm: fix lp_build_sample_compare()
The old code didn't really make sense. We only need to compare the
X channel of the texture (depth) against the texcoord.
For (bi)linear sampling we should move the calls to this function
and compute the final result as (s1+s2+s3+s4) * 0.25. Someday.
This fixes the glean glsl1 shadow2D() tests. See fd.o bug 29307.
Luca Barbieri [Tue, 21 Sep 2010 21:21:35 +0000 (23:21 +0200)]
d3d1x: ignore errors while building docs
Some versions of dot apparently lack pdf output.
Jerome Glisse [Tue, 21 Sep 2010 20:56:59 +0000 (16:56 -0400)]
r600g: fix multi buffer rendering
Signed-off-by: Jerome Glisse <jglisse@redhat.com>