mesa.git
14 years agoi965: Track the windowizer's dispatch for kill pixel, promoted, and OQ
Eric Anholt [Tue, 21 Sep 2010 19:05:37 +0000 (12:05 -0700)]
i965: Track the windowizer's dispatch for kill pixel, promoted, and OQ

Looks like the problem was we weren't passing the depth to the render
target as expected, so the chip would wedge.  Fixes GPU hang in
occlusion-query-discard.

Bug #30097

14 years agoi965: Also enable CC statistics when doing OQs.
Eric Anholt [Tue, 21 Sep 2010 17:53:34 +0000 (10:53 -0700)]
i965: Also enable CC statistics when doing OQs.

This is required by the spec, so respect that.

14 years agoi965: Share the KIL_NV implementation between glsl and non-glsl.
Eric Anholt [Tue, 21 Sep 2010 17:35:50 +0000 (10:35 -0700)]
i965: Share the KIL_NV implementation between glsl and non-glsl.

14 years agor600g: directly allocate bo for user buffer
Jerome Glisse [Tue, 21 Sep 2010 18:36:44 +0000 (14:36 -0400)]
r600g: directly allocate bo for user buffer

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
14 years agoglsl: Add definition of gl_TextureMatrix inverse/transpose builtins.
Eric Anholt [Tue, 21 Sep 2010 17:08:38 +0000 (10:08 -0700)]
glsl: Add definition of gl_TextureMatrix inverse/transpose builtins.

Fixes glsl2/builtin-texturematrix.
Bug #30196.

14 years agollvmpipe: When failing free fs shader too.
José Fonseca [Tue, 21 Sep 2010 16:51:06 +0000 (17:51 +0100)]
llvmpipe: When failing free fs shader too.

14 years agollvmpipe: Describe how to profile llvmpipe.
José Fonseca [Tue, 21 Sep 2010 16:50:30 +0000 (17:50 +0100)]
llvmpipe: Describe how to profile llvmpipe.

14 years agodraw: new draw_fs.[ch] files
Brian Paul [Tue, 21 Sep 2010 16:07:52 +0000 (10:07 -0600)]
draw: new draw_fs.[ch] files

14 years agoMerge branch 'sprite-coord'
Brian Paul [Tue, 21 Sep 2010 15:57:25 +0000 (09:57 -0600)]
Merge branch 'sprite-coord'

14 years agoglx: Hold on to drawables if we're just switching to another context
Kristian Høgsberg [Tue, 21 Sep 2010 13:56:05 +0000 (09:56 -0400)]
glx: Hold on to drawables if we're just switching to another context

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

14 years agod3d1x: actually enable and fix blob apis
Luca Barbieri [Tue, 21 Sep 2010 14:00:45 +0000 (16:00 +0200)]
d3d1x: actually enable and fix blob apis

14 years agod3d1x: add missing file
Luca Barbieri [Tue, 21 Sep 2010 13:51:02 +0000 (15:51 +0200)]
d3d1x: add missing file

14 years agod3d1x: fix compilation with recent Wine versions installed
Luca Barbieri [Tue, 21 Sep 2010 13:39:42 +0000 (15:39 +0200)]
d3d1x: fix compilation with recent Wine versions installed

Recent Wine versions provide a d3d11shader.h, which is however empty
and was getting used instead of our non-empty one.

Correct the include path order to fix this.

14 years agod3d1x: add blob and signature extraction APIs
Luca Barbieri [Tue, 21 Sep 2010 00:39:52 +0000 (02:39 +0200)]
d3d1x: add blob and signature extraction APIs

NOTE: untested, needs a testing tool!

14 years agollvmpipe: fix flatshading in new line code
Keith Whitwell [Tue, 21 Sep 2010 13:28:51 +0000 (14:28 +0100)]
llvmpipe: fix flatshading in new line code

Calculate interpolants before rearranging the vertices.

14 years agod3d1x: add new Direct3D 10/11 COM state tracker for Gallium
Luca Barbieri [Sun, 12 Sep 2010 00:49:36 +0000 (02:49 +0200)]
d3d1x: add new Direct3D 10/11 COM state tracker for Gallium

This is a new implementation of the Direct3D 11 COM API for Gallium.

Direct3D 10 and 10.1 implementations are also provided, which are
automatically generated with s/D3D11/D3D10/g plus a bunch of #ifs.

While this is an initial version, most of the code is there (limited
to what Gallium can express), and tri, gears and texturing demos
are working.

The primary goal is to realize Gallium's promise of multiple API
support, and provide an API that can be easily implemented with just
a very thin wrapper over Gallium, instead of the enormous amount of
complex code needed for OpenGL.

The secondary goal is to run Windows Direct3D 10/11 games on Linux
using Wine.
Wine dlls are currently not provided, but adding them should be
quite easy.

Fglrx and nvidia drivers can also be supported by writing a Gallium
driver that talks to them using OpenGL, which is a relatively easy
task.
Thanks to the great design of Direct3D 10/11 and closeness to Gallium,
this approach should not result in detectable overhead, and is the
most maintainable way to do it, providing a path to switch to the
open Gallium drivers once they are on par with the proprietary ones.

Currently Wine has a very limited Direct3D 10 implementation, and
completely lacks a Direct3D 11 implementation.

Note that Direct3D 10/11 are completely different from Direct3D 9
and earlier, and thus warrant a fully separate implementation.

The third goal is to provide a superior alternative to OpenGL for
graphics programming on non-Windows systems, particularly Linux
and other free and open systems.

Thanks to a very clean and well-though design done from scratch,
the Direct3D 10/11 APIs are vastly better than OpenGL and can be
supported with orders of magnitude less code and development time,
as you can see by comparing the lines of code of this commit and
those in the existing Mesa OpenGL implementation.

This would have been true for the Longs Peak proposal as well, but
unfortunately it was abandoned by Khronos, leaving the OpenGL
ecosystem without a graphics API with a modern design.

A binding of Direct3D 10/11 to EGL would solve this issue in the
most economical way possible, and this would be great to provide
in Mesa, since DXGI, the API used to bind Direct3D 10/11 to Windows,
is a bit suboptimal, especially on non-Windows platforms.

Finally, a mature Direct3D 10/11 implementation is intrinsically going
to be faster and more reliable than an OpenGL implementation, thanks
to the dramatically smaller API and the segregation of all nontrivial
work to object creation that the application must perform ahead of
time.

Currently, this commit contains:
- Independently created headers for Direct3D 10, 10.1, 11 and DXGI 1.1,
  partially based on the existing Wine headers for D3D10 and DXGI 1.0
- A parser for Direct3D 10/11 DXBC and TokenizedProgramFormat (TPF)
- A shader translator from TokenizedProgramFormat to TGSI
- Implementation of the Direct3D 11 core interfaces
- Automatically generated implementation of Direct3D 10 and 10.1
- Implementation of DXGI using the "native" framework of the EGL st
- Demos, usable either on Windows or on this implementation
  - d3d11tri, a clone of tri
  - d3d11tex, a (multi)texturing demo
  - d3d11gears, an improved version of glxgears
  - d3d11spikysphere, a D3D11 tessellation demo (currently Windows-only)
- A downloader for the Microsoft HLSL compiler, needed to recompile
  the shaders (compiled shader bytecode is also included)

To compile this, configure at least with these options:
--with-state-trackers=egl,d3d1x --with-egl-platforms=x11
plus some gallium drivers (such as softpipe with --enable-gallium-swrast)

The Wine headers (usually from a wine-dev or wine-devel package) must
be installed.
Only x86-32 has been tested.

You may need to run "make" in the subdirectories of src/gallium/winsys/sw
and you may need to manually run "sudo make install" in
src/gallium/targets/egl

To test it, run the demos in the "progs" directory.
Windows binaries are included to find out how demos should work, and to
test Wine integration when it will be done.

Enjoy, and let me know if you manage to compile and run this, or
which issues you are facing if not.

Using softpipe is recommended for now, and your mileage with hardware
drivers may vary.
However, getting this to work on hardware drivers is also obviously very
important.

Note that currently llvmpipe is buggy and causes all 3 gears to be
drawn with the same color.
Use export GALLIUM_DRIVER=softpipe to avoid this.

Thanks to all the Gallium contributors and especially the VMware
team, whose work made it possible to implement Direct3D 10/11 much
more easily than it would have been otherwise.

14 years agor600g: Removed debug code.
Tilman Sauerbeck [Tue, 21 Sep 2010 06:13:03 +0000 (08:13 +0200)]
r600g: Removed debug code.

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
14 years agor600g: fix eg texture borders.
Dave Airlie [Tue, 21 Sep 2010 09:57:58 +0000 (19:57 +1000)]
r600g: fix eg texture borders.

texture border regs are indexed on evergreen.

14 years agor600g: fixup evergreen miptree setup.
Dave Airlie [Tue, 21 Sep 2010 09:57:15 +0000 (19:57 +1000)]
r600g: fixup evergreen miptree setup.

eg seems to have a higher pitch aligmment requirement and uses r700 cube setup

this fixes a couple of piglit tests here.

14 years agor300/compiler: Refactor the pair instruction data structures
Tom Stellard [Thu, 16 Sep 2010 17:31:19 +0000 (10:31 -0700)]
r300/compiler: Refactor the pair instruction data structures

Use rc_pair_ prefix for all pair instruction structs

Create a named struct for pair instruction args

Replace structs radeon_pair_instruction_{rgb,alpha} with struct
radeon_pair_sub_instruction.  These two structs were nearly identical
and were creating a lot of cut and paste code.  These changes are the
first step towards removing some of that code.

14 years agor600g: set back to correct codepaths.
Dave Airlie [Tue, 21 Sep 2010 01:32:15 +0000 (11:32 +1000)]
r600g: set back to correct codepaths.

Jerome please use git diff and git show before pushing.

14 years agor600g: deal with overflow of VTX/TEX CF clauses.
Dave Airlie [Tue, 21 Sep 2010 01:24:49 +0000 (11:24 +1000)]
r600g: deal with overflow of VTX/TEX CF clauses.

running piglit's texrect-many caused the vtx to overflow.

14 years agotgsi: Remove duplicate case value.
Vinson Lee [Tue, 21 Sep 2010 01:20:04 +0000 (18:20 -0700)]
tgsi: Remove duplicate case value.

14 years agodri/nouveau: Fix software mipmap generation on 1x1 textures.
Francisco Jerez [Fri, 17 Sep 2010 18:58:43 +0000 (20:58 +0200)]
dri/nouveau: Fix software mipmap generation on 1x1 textures.

14 years agodri/nv10-nv20: Fix texturing in some cases after a base level change.
Francisco Jerez [Fri, 17 Sep 2010 18:56:48 +0000 (20:56 +0200)]
dri/nv10-nv20: Fix texturing in some cases after a base level change.

14 years agodri/nouveau: Cleanup more references to old FBOs and VBOs.
Francisco Jerez [Fri, 17 Sep 2010 14:35:49 +0000 (16:35 +0200)]
dri/nouveau: Cleanup more references to old FBOs and VBOs.

14 years agodri/nouveau: Remove unnecessary assertion.
Francisco Jerez [Fri, 17 Sep 2010 13:25:03 +0000 (15:25 +0200)]
dri/nouveau: Remove unnecessary assertion.

14 years agodri/nv04: Use nvgl_wrap_mode().
Francisco Jerez [Fri, 17 Sep 2010 13:03:14 +0000 (15:03 +0200)]
dri/nv04: Use nvgl_wrap_mode().

14 years agotgsi: Actually care what check_soa_dependencies says
Jakob Bornecrantz [Tue, 21 Sep 2010 00:16:31 +0000 (02:16 +0200)]
tgsi: Actually care what check_soa_dependencies says

Thanks to José for the more complete list of supported opcodes.

NOTE: This is a candidate for the 7.9 branch.

14 years agotgsi: Don't ignore indirect registers in tgsi_check_soa_dependencies
José Fonseca [Tue, 21 Sep 2010 00:16:19 +0000 (02:16 +0200)]
tgsi: Don't ignore indirect registers in tgsi_check_soa_dependencies

NOTE: This is a candidate for the 7.9 branch.

14 years agoFix typos in comments and debug output strings.
Timo Wiren [Mon, 20 Sep 2010 22:27:34 +0000 (15:27 -0700)]
Fix typos in comments and debug output strings.

Bug #30208.

14 years agodraw: check bitshift against PIPE_MAX_SHADER_OUTPUS
Brian Paul [Mon, 20 Sep 2010 21:34:02 +0000 (15:34 -0600)]
draw: check bitshift against PIPE_MAX_SHADER_OUTPUS

14 years agollvmpipe: check bitshift against PIPE_MAX_SHADER_OUTPUTS
Brian Paul [Mon, 20 Sep 2010 21:33:49 +0000 (15:33 -0600)]
llvmpipe: check bitshift against PIPE_MAX_SHADER_OUTPUTS

14 years agor600g: add back reference check when mapping buffer
Jerome Glisse [Mon, 20 Sep 2010 21:21:37 +0000 (17:21 -0400)]
r600g: add back reference check when mapping buffer

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
14 years agodraw: fix test for using the wide-point stage
Brian Paul [Mon, 20 Sep 2010 19:48:29 +0000 (13:48 -0600)]
draw: fix test for using the wide-point stage

As it was, we weren't obeying the draw->pipeline.point_sprite state.
Fixes point sprites in llvmpipe driver.

14 years agor600g: use pipe context for flushing inside map
Jerome Glisse [Mon, 20 Sep 2010 19:35:19 +0000 (15:35 -0400)]
r600g: use pipe context for flushing inside map

This allow to share code path btw old & new, also
remove check on reference this might make things
a little slower but new design doesn't use reference
stuff.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
14 years agollvmpipe: implement sprite coord origin modes
Brian Paul [Mon, 20 Sep 2010 19:48:02 +0000 (13:48 -0600)]
llvmpipe: implement sprite coord origin modes

14 years agopython/tests: Fixed tri.py for API and TGSI syntax changes.
Tilman Sauerbeck [Sun, 19 Sep 2010 17:25:21 +0000 (19:25 +0200)]
python/tests: Fixed tri.py for API and TGSI syntax changes.

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
14 years agollvmpipe: rename sprite field, add sprite_coord_origin
Brian Paul [Mon, 20 Sep 2010 19:29:55 +0000 (13:29 -0600)]
llvmpipe: rename sprite field, add sprite_coord_origin

14 years agor600g: Implemented the Z and W component write for the SCS opcode.
Tilman Sauerbeck [Mon, 20 Sep 2010 19:27:59 +0000 (21:27 +0200)]
r600g: Implemented the Z and W component write for the SCS opcode.

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
14 years agollvmpipe: clean-up, comments in setup_point_coefficient()
Brian Paul [Mon, 20 Sep 2010 19:26:27 +0000 (13:26 -0600)]
llvmpipe: clean-up, comments in setup_point_coefficient()

14 years agor600g: Honour destination operand's writemask in the SCS implementation.
Tilman Sauerbeck [Sun, 19 Sep 2010 08:06:34 +0000 (10:06 +0200)]
r600g: Honour destination operand's writemask in the SCS implementation.

If we are not going to write to the X or Y components of the destination
vector we also don't need to prepare to compute SIN or COS.

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
14 years agollvmpipe: reformatting, remove trailing whitespace, etc
Brian Paul [Mon, 20 Sep 2010 19:07:59 +0000 (13:07 -0600)]
llvmpipe: reformatting, remove trailing whitespace, etc

14 years agollvmpipe: indentation fix
Brian Paul [Mon, 20 Sep 2010 18:55:29 +0000 (12:55 -0600)]
llvmpipe: indentation fix

14 years agollvmpipe: maintain fragment shader state for draw module
Brian Paul [Mon, 20 Sep 2010 18:52:16 +0000 (12:52 -0600)]
llvmpipe: maintain fragment shader state for draw module

14 years agosoftpipe: fix whitespace
Luca Barbieri [Mon, 20 Sep 2010 18:49:03 +0000 (20:49 +0200)]
softpipe: fix whitespace

14 years agotgsi: add switch/case opcodes to tgsi_opcode_tmp.h
Luca Barbieri [Mon, 20 Sep 2010 17:19:50 +0000 (19:19 +0200)]
tgsi: add switch/case opcodes to tgsi_opcode_tmp.h

14 years agosoftpipe: make z/s test always pass if no zsbuf, instead of crashing
Luca Barbieri [Mon, 20 Sep 2010 17:22:44 +0000 (19:22 +0200)]
softpipe: make z/s test always pass if no zsbuf, instead of crashing

D3D10 specifies this.

14 years agogallium: avoid the C++ keyword "template" in sw_winsys.h
Luca Barbieri [Mon, 20 Sep 2010 18:13:30 +0000 (20:13 +0200)]
gallium: avoid the C++ keyword "template" in sw_winsys.h

14 years agogallivm: remove debug code
Brian Paul [Mon, 20 Sep 2010 17:21:44 +0000 (11:21 -0600)]
gallivm: remove debug code

14 years agollvmpipe: fix query bug when no there's no scene
Brian Paul [Mon, 20 Sep 2010 16:50:15 +0000 (10:50 -0600)]
llvmpipe: fix query bug when no there's no scene

14 years agost/mesa: fix assertion failure in GetTexImage for cubemaps
Marek Olšák [Fri, 17 Sep 2010 00:43:38 +0000 (02:43 +0200)]
st/mesa: fix assertion failure in GetTexImage for cubemaps

Can be reproduced with mesa/demos/src/tests/blitfb.

NOTE: This is a candidate for the 7.9 branch.

14 years agor600g: move chip class to radeon common structure
Jerome Glisse [Mon, 20 Sep 2010 15:58:00 +0000 (11:58 -0400)]
r600g: move chip class to radeon common structure

So texture code can be shared btw new state design
& old one.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
14 years agoglsl: Fix broken handling of ir_binop_equal and ir_binop_nequal.
Kenneth Graunke [Sun, 19 Sep 2010 02:51:07 +0000 (04:51 +0200)]
glsl: Fix broken handling of ir_binop_equal and ir_binop_nequal.

When ir_binop_all_equal and ir_binop_any_nequal were introduced, the
meaning of these two opcodes changed to return vectors rather than a
single scalar, but the constant expression handling code was incorrectly
written and only worked for scalars.  As a result, only the first
component of the returned vector would be properly initialized.

14 years agoglsl: Add comments to clarify the types of comparison binops.
Kenneth Graunke [Sun, 19 Sep 2010 02:50:28 +0000 (04:50 +0200)]
glsl: Add comments to clarify the types of comparison binops.

14 years agodocs: mark as obsolete, remove dead links
Brian Paul [Mon, 20 Sep 2010 14:57:53 +0000 (08:57 -0600)]
docs: mark as obsolete, remove dead links

14 years agodocs: remove old broken link
Brian Paul [Mon, 20 Sep 2010 14:54:04 +0000 (08:54 -0600)]
docs: remove old broken link

14 years agoglsl2: silence compiler warnings in printf() calls
Brian Paul [Mon, 20 Sep 2010 14:22:51 +0000 (08:22 -0600)]
glsl2: silence compiler warnings in printf() calls

Such as: "ir_validate.cpp:143: warning: format ‘%p’ expects type ‘void*’,
but argument 2 has type ‘ir_variable*’"

14 years agomesa: don't call valid_texture_object() in non-debug builds
Brian Paul [Mon, 20 Sep 2010 14:19:08 +0000 (08:19 -0600)]
mesa: don't call valid_texture_object() in non-debug builds

This reverts commit c32bac57ed445e48856d74113364287ed6e5cdd4
and silences the warning differently.

The _mesa_reference_texobj() function is called quite a bit and
we don't want to call valid_texture_object() all the time in non-
debug builds.

14 years agoglsl: Add doxygen comments
Ian Romanick [Sat, 18 Sep 2010 14:08:38 +0000 (16:08 +0200)]
glsl: Add doxygen comments

14 years agoi915g: Link with wrapper sw winsys with scons
Jakob Bornecrantz [Mon, 20 Sep 2010 13:25:18 +0000 (15:25 +0200)]
i915g: Link with wrapper sw winsys with scons

14 years agosvga: Integer constant register file has a separate namespace.
Michal Krol [Thu, 16 Sep 2010 16:51:03 +0000 (16:51 +0000)]
svga: Integer constant register file has a separate namespace.

Count int and float constants independently. Since there are only
few i# constants available and hundreds of c# constants, it would
be too easy to end up with an i# declaration out of its range.

14 years agosvga: Fix relative addressing translation for pixel shaders.
Michal Krol [Thu, 16 Sep 2010 16:48:00 +0000 (16:48 +0000)]
svga: Fix relative addressing translation for pixel shaders.

Pixel shaders do not have address registers a#, only one
loop register aL. Our only hope is to assume the address
register is in fact a loop counter and replace it with aL.

Do not translate ARL instruction for pixel shaders -- MOVA
instruction is only valid for vertex saders.

Make it more explicit relative addressing of inputs is only valid
for pixel shaders and constants for vertex shaders.

14 years agor600g: Cleanup viewport floats.
Corbin Simpson [Mon, 20 Sep 2010 06:02:19 +0000 (23:02 -0700)]
r600g: Cleanup viewport floats.

14 years agor600g: Clean up PS setup.
Corbin Simpson [Mon, 20 Sep 2010 05:54:18 +0000 (22:54 -0700)]
r600g: Clean up PS setup.

I didn't do r600d according to the docs; I split EXPORT_MODE to be a bit more
useful and obvious. Hope this is okay.

14 years agor600g: only flush for the correct colorbuffer, not all of them.
Dave Airlie [Mon, 20 Sep 2010 05:39:03 +0000 (15:39 +1000)]
r600g: only flush for the correct colorbuffer, not all of them.

14 years agor600g: add missing BC_INST wrapper for evergreen
Dave Airlie [Mon, 20 Sep 2010 05:38:40 +0000 (15:38 +1000)]
r600g: add missing BC_INST wrapper for evergreen

14 years agor600g: fixup r700 CB_SHADER_CONTROL register.
Dave Airlie [Mon, 20 Sep 2010 05:36:52 +0000 (15:36 +1000)]
r600g: fixup r700 CB_SHADER_CONTROL register.

r600c emits this with a mask of each written output.

14 years agor600g: fix r700 cube map sizing.
Dave Airlie [Mon, 20 Sep 2010 05:30:52 +0000 (15:30 +1000)]
r600g: fix r700 cube map sizing.

this fixes fbo-cubemap on r700.

14 years agor600g: add color/texture support for more depth formats.
Dave Airlie [Mon, 20 Sep 2010 02:21:35 +0000 (12:21 +1000)]
r600g: add color/texture support for more depth formats.

14 years agor600g: add z16 to color setup
Dave Airlie [Mon, 20 Sep 2010 02:04:52 +0000 (12:04 +1000)]
r600g: add z16 to color setup

14 years agor600g: fix tiling support for ddx supplied buffers
Dave Airlie [Mon, 20 Sep 2010 01:39:14 +0000 (11:39 +1000)]
r600g: fix tiling support for ddx supplied buffers

needed to emit some more relocs to the kernel.

14 years agor600g: "tmp" is such a bad name for a texture.
Corbin Simpson [Mon, 20 Sep 2010 01:20:05 +0000 (18:20 -0700)]
r600g: "tmp" is such a bad name for a texture.

14 years agor600g: Fix false and true.
Corbin Simpson [Mon, 20 Sep 2010 01:14:41 +0000 (18:14 -0700)]
r600g: Fix false and true.

14 years agor600g: Clean up some indentation and |= vs. | usage.
Corbin Simpson [Mon, 20 Sep 2010 01:13:41 +0000 (18:13 -0700)]
r600g: Clean up some indentation and |= vs. | usage.

14 years agor600g: Deobfuscate and comment a few more functions in r600_hw_states.
Corbin Simpson [Mon, 20 Sep 2010 01:04:41 +0000 (18:04 -0700)]
r600g: Deobfuscate and comment a few more functions in r600_hw_states.

14 years agor600g: Trivially deobfuscate r600_hw_states.
Corbin Simpson [Mon, 20 Sep 2010 00:12:26 +0000 (17:12 -0700)]
r600g: Trivially deobfuscate r600_hw_states.

14 years agor600g: Use align() instead of handrolled code.
Corbin Simpson [Sun, 19 Sep 2010 23:42:29 +0000 (16:42 -0700)]
r600g: Use align() instead of handrolled code.

14 years agor600g: drop debugging that snuck in
Dave Airlie [Mon, 20 Sep 2010 00:45:18 +0000 (10:45 +1000)]
r600g: drop debugging that snuck in

14 years agor600g: clean up valgrind issues on maxtargets test.
Dave Airlie [Mon, 20 Sep 2010 00:44:44 +0000 (10:44 +1000)]
r600g: clean up valgrind issues on maxtargets test.

14 years agor600g: fix fbo-drawbuffers-maxtargets
Dave Airlie [Mon, 20 Sep 2010 00:34:42 +0000 (10:34 +1000)]
r600g: fix fbo-drawbuffers-maxtargets

we were leaking buffers since the flush code was added, it wasn't dropping references.
move setting up flush to the set_framebuffer_state.
clean up the flush state object.
make more space in the BOs array for flushing.

14 years agor600g: send correct surface base update for multi-cbufs
Dave Airlie [Mon, 20 Sep 2010 00:15:26 +0000 (10:15 +1000)]
r600g: send correct surface base update for multi-cbufs

14 years agor600g: modify index buffers for sizes the hw can't deal with.
Dave Airlie [Sun, 19 Sep 2010 23:57:47 +0000 (09:57 +1000)]
r600g: modify index buffers for sizes the hw can't deal with.

this just uses the common code from r300g now in util to do translations on r600g.

14 years agoutil/r300g: split the r300 index buffer modifier functions out to util
Dave Airlie [Thu, 12 Aug 2010 10:20:23 +0000 (20:20 +1000)]
util/r300g: split the r300 index buffer modifier functions out to util

These can be used by other drivers, like r600g.

Signed-off-by: Dave Airlie <airlied@redhat.com>
14 years agor600g: fix exports_ps to export a number not a mask.
Henri Verbeet [Sun, 19 Sep 2010 23:29:43 +0000 (09:29 +1000)]
r600g: fix exports_ps to export a number not a mask.

14 years agoscons: Link against talloc in the Gallium DRI drivers
Jakob Bornecrantz [Sun, 19 Sep 2010 20:08:47 +0000 (22:08 +0200)]
scons: Link against talloc in the Gallium DRI drivers

14 years agorbug: Add function to get opcode name string
Jakob Bornecrantz [Fri, 10 Sep 2010 02:39:26 +0000 (04:39 +0200)]
rbug: Add function to get opcode name string

14 years agorbug: Cast opcode to corrent int size
Jakob Bornecrantz [Fri, 10 Sep 2010 00:15:11 +0000 (02:15 +0200)]
rbug: Cast opcode to corrent int size

14 years agoRevert "r600g: Flush upload buffers before draws instead of before flushes."
Henri Verbeet [Sun, 19 Sep 2010 20:59:14 +0000 (22:59 +0200)]
Revert "r600g: Flush upload buffers before draws instead of before flushes."

This reverts commit a1d9a58b825825723f1c5f7705f2ed3ef834038a.
Flushing the upload buffers on draw is wrong, uploads aren't supposed to
cause flushes in the first place. The real issue was
radeon_bo_pb_map_internal() not respecting PB_USAGE_UNSYNCHRONIZED.

14 years agor600g: Respect PB_USAGE_UNSYNCHRONIZED in radeon_bo_pb_map_internal().
Henri Verbeet [Sun, 19 Sep 2010 20:58:42 +0000 (22:58 +0200)]
r600g: Respect PB_USAGE_UNSYNCHRONIZED in radeon_bo_pb_map_internal().

14 years agogallium/docs: Fixed a typo in the SCS opcode description.
Tilman Sauerbeck [Sun, 19 Sep 2010 07:03:11 +0000 (09:03 +0200)]
gallium/docs: Fixed a typo in the SCS opcode description.

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
14 years agoauxiliary: fix depth-only and stencil-only clears
Luca Barbieri [Sun, 19 Sep 2010 19:48:28 +0000 (21:48 +0200)]
auxiliary: fix depth-only and stencil-only clears

Depth-only and stencil-only clears should mask out depth/stencil from the
output, mask out stencil/input from input, and OR or ADD them together.

However, due to a typo they were being ANDed, resulting in zeroing the buffer.

14 years agor600g: Buffer object maps imply a wait.
Henri Verbeet [Sun, 19 Sep 2010 17:27:30 +0000 (19:27 +0200)]
r600g: Buffer object maps imply a wait.

Unless e.g. PB_USAGE_DONTBLOCK or PB_USAGE_UNSYNCHRONIZED would be specified.

14 years agor600g: Remove a redundant flush in r600_texture_transfer_map().
Henri Verbeet [Sun, 19 Sep 2010 17:27:30 +0000 (19:27 +0200)]
r600g: Remove a redundant flush in r600_texture_transfer_map().

radeon_ws_bo_map() will already take care of that if needed.

14 years agor600g: Check for other references before checking for existing mappings in radeon_bo_...
Henri Verbeet [Sun, 19 Sep 2010 17:27:30 +0000 (19:27 +0200)]
r600g: Check for other references before checking for existing mappings in radeon_bo_pb_map_internal().

Having a non-NULL data pointer doesn't imply it's safe to reuse that mapping,
it may have been unmapped but not flushed yet.

14 years agor600g: Flush upload buffers before draws instead of before flushes.
Henri Verbeet [Sun, 19 Sep 2010 17:27:30 +0000 (19:27 +0200)]
r600g: Flush upload buffers before draws instead of before flushes.

If a upload buffer is used by a previous draw that's still in the CS,
accessing it would need a context flush. However, doing a context flush when
mapping the upload buffer would then flush/destroy the same buffer we're trying
to map there. Flushing the upload buffers before a draw avoids both the CS
flush and the upload buffer going away while it's being used. Note that
u_upload_data() could e.g. use a pool of buffers instead of allocating new
ones all the time if that turns out to be a significant issue.

14 years agoegl: Enable drm platform by default.
Chia-I Wu [Sun, 19 Sep 2010 09:31:34 +0000 (17:31 +0800)]
egl: Enable drm platform by default.

This enables EGL_MESA_drm_display for st/egl in the default setup.

14 years agost/egl: s/kms/drm/ on the drm backend.
Chia-I Wu [Sun, 19 Sep 2010 09:11:07 +0000 (17:11 +0800)]
st/egl: s/kms/drm/ on the drm backend.

s/kms/drm/, s/kdpy/drmdpy/, and so forth.

14 years agost/egl: Rename kms backend to drm.
Chia-I Wu [Sun, 19 Sep 2010 08:54:39 +0000 (16:54 +0800)]
st/egl: Rename kms backend to drm.

The main use of the backend is to support EGL_MESA_drm_display.  drm
should be a better name.

14 years agost/egl: Split modeset code support to modeset.c.
Chia-I Wu [Sun, 19 Sep 2010 08:32:06 +0000 (16:32 +0800)]
st/egl: Split modeset code support to modeset.c.

The modeset code supports now obsolete EGL_MESA_screen_surface.  Move it
to a file of its own.