summaryrefslogtreecommitdiff
path: root/src/gallium
AgeCommit message (Collapse)Author
2010-09-22d3d1x: add Wine dlls (tri, tex working, but no other testing)Luca Barbieri
2010-09-22d3d1x: define GUIDs in the normal wayLuca Barbieri
2010-09-22d3d1x: fix API nameLuca Barbieri
2010-09-22d3d1x: redesign the HWND resolver interfaceLuca Barbieri
This one should be powerful enough to hook up Wine.
2010-09-22d3d1x: fix GUID declarationsLuca Barbieri
2010-09-22d3d1x: destroy native_display on adapter destructionLuca Barbieri
2010-09-22dri2: Make createImageFromName() take a __DRIscreen instead of __DRIcontextKristian Høgsberg
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>
2010-09-22r600g: fix multiple occlusion query on same idJerome Glisse
When calling query begin using same query id we need to discard previous query results. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-09-22r600g: disable shader rebuild optimization & account cb flush packetJerome Glisse
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>
2010-09-22llvmpipe: fix sprite texcoord setup for non-projective texturingBrian Paul
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.
2010-09-22r600g: flush color buffer after draw commandJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-09-22llvmpipe: Make rgb/alpha bland func/factors match, when there is no alpha.José Fonseca
Makes AoS blending easier, and state more canonical.
2010-09-22llvmpipe: Special case complementary and identify blend factors in SoA.José Fonseca
One multiplication instead of two. Also fix floating point random number generation and verification. TODO: Do the same for AoS blending.
2010-09-22gallivm: Add unorm support to lp_build_lerp()José Fonseca
Unfortunately this can cause segfault with LLVM 2.6, if x is a constant.
2010-09-22util: Flush stdout on util_format.José Fonseca
2010-09-22d3d1x: fix segfault when hashingLuca Barbieri
2010-09-22d3d1x: fix warningLuca Barbieri
2010-09-22d3d1x: fix cf analysisLuca Barbieri
2010-09-22d3d1x: link with CXXFLAGSLuca Barbieri
Otherwise, -m32 doesn't make it there.
2010-09-22d3d1x: add missing memory barrierLuca Barbieri
2010-09-22d3d1x: don't build progs automaticallyLuca Barbieri
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.
2010-09-22winsys: automatically build sw winsys needed by EGL and d3d1xLuca Barbieri
A cleaner solution would be preferable, but this does no harm and works.
2010-09-22glx: decouple dri2.c and GLX, fixing Gallium EGL and d3d1x buildLuca Barbieri
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.
2010-09-22nvfx: remove gl_PointCoord hackLuca Barbieri
Now Gallium has the proper fix, thanks to Brian Paul.
2010-09-22d3d1x: attempt to fix/workaround bug #30322Luca Barbieri
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.
2010-09-22r600g: disable dirty handling on texture from depth code.Dave Airlie
nothing was every dirtying the object again, the mesa-demos reflect test was just stalling. this fixes glean readPixSanity.
2010-09-22r600g: make stencil readback workDave Airlie
need to write two components to get stencil components as well
2010-09-22r600g: cleanup some of the DB blit codeDave Airlie
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
2010-09-22r600g: fix typo in struct member nameDave Airlie
2010-09-21r600g: occlusion query for new designJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-09-21softpipe: add missing calls to set draw vertex samplers/viewsBrian Paul
Part of the fix for running softpipe w/ LLVM-enabled draw module.
2010-09-21gallivm: fix lp_build_sample_compare()Brian Paul
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.
2010-09-21d3d1x: ignore errors while building docsLuca Barbieri
Some versions of dot apparently lack pdf output.
2010-09-21r600g: fix multi buffer renderingJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-09-21d3d1x: fix GCC 4.1/4.2 buildLuca Barbieri
2010-09-21d3d1x: add template parameters to base class ctor calls for GCC 4.4Luca Barbieri
GCC 4.5 is fine without them, but GCC 4.4 requires them. Should fully fix the build on GCC 4.4
2010-09-21d3d1x: fix build with compilers other than GCC 4.5Luca Barbieri
There was some libstdc++-specific code that would only build with GCC 4.5 Now it should be much more compatible, at the price of reimplementing the generic hash function.
2010-09-21gallium/docs: The RET opcode may appear anywhere in a subroutine.Tilman Sauerbeck
Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
2010-09-21r600g: directly allocate bo for user bufferJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-09-21llvmpipe: When failing free fs shader too.José Fonseca
2010-09-21llvmpipe: Describe how to profile llvmpipe.José Fonseca
2010-09-21draw: new draw_fs.[ch] filesBrian Paul
2010-09-21Merge branch 'sprite-coord'Brian Paul
2010-09-21d3d1x: actually enable and fix blob apisLuca Barbieri
2010-09-21d3d1x: add missing fileLuca Barbieri
2010-09-21d3d1x: fix compilation with recent Wine versions installedLuca Barbieri
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.
2010-09-21d3d1x: add blob and signature extraction APIsLuca Barbieri
NOTE: untested, needs a testing tool!
2010-09-21llvmpipe: fix flatshading in new line codeKeith Whitwell
Calculate interpolants before rearranging the vertices.
2010-09-21d3d1x: add new Direct3D 10/11 COM state tracker for GalliumLuca Barbieri
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.
2010-09-21r600g: Removed debug code.Tilman Sauerbeck
Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>