summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* softpipe: add missing calls to set draw vertex samplers/viewsBrian Paul2010-09-211-0/+8
| | | | Part of the fix for running softpipe w/ LLVM-enabled draw module.
* gallivm: fix lp_build_sample_compare()Brian Paul2010-09-211-17/+23
| | | | | | | | | | 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.
* d3d1x: ignore errors while building docsLuca Barbieri2010-09-211-0/+1
| | | | Some versions of dot apparently lack pdf output.
* r600g: fix multi buffer renderingJerome Glisse2010-09-211-2/+2
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* glsl2: fix typo in error msgBrian Paul2010-09-211-1/+1
|
* d3d1x: fix GCC 4.1/4.2 buildLuca Barbieri2010-09-211-1/+11
|
* d3d1x: add template parameters to base class ctor calls for GCC 4.4Luca Barbieri2010-09-214-18/+20
| | | | | GCC 4.5 is fine without them, but GCC 4.4 requires them. Should fully fix the build on GCC 4.4
* d3d1x: fix build with compilers other than GCC 4.5Luca Barbieri2010-09-211-7/+33
| | | | | | 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.
* gallium/docs: The RET opcode may appear anywhere in a subroutine.Tilman Sauerbeck2010-09-211-2/+0
| | | | Signed-off-by: Tilman Sauerbeck <[email protected]>
* i965: Track the windowizer's dispatch for kill pixel, promoted, and OQEric Anholt2010-09-213-6/+23
| | | | | | | | 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
* i965: Also enable CC statistics when doing OQs.Eric Anholt2010-09-211-3/+4
| | | | This is required by the spec, so respect that.
* i965: Share the KIL_NV implementation between glsl and non-glsl.Eric Anholt2010-09-213-17/+3
|
* r600g: directly allocate bo for user bufferJerome Glisse2010-09-214-27/+66
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* glsl: Add definition of gl_TextureMatrix inverse/transpose builtins.Eric Anholt2010-09-211-0/+3
| | | | | Fixes glsl2/builtin-texturematrix. Bug #30196.
* llvmpipe: When failing free fs shader too.José Fonseca2010-09-211-0/+1
|
* llvmpipe: Describe how to profile llvmpipe.José Fonseca2010-09-211-0/+38
|
* draw: new draw_fs.[ch] filesBrian Paul2010-09-212-0/+115
|
* Merge branch 'sprite-coord'Brian Paul2010-09-2122-139/+391
|\
| * draw: check bitshift against PIPE_MAX_SHADER_OUTPUSBrian Paul2010-09-201-1/+5
| |
| * llvmpipe: check bitshift against PIPE_MAX_SHADER_OUTPUTSBrian Paul2010-09-201-2/+5
| |
| * draw: fix test for using the wide-point stageBrian Paul2010-09-201-2/+2
| | | | | | | | | | As it was, we weren't obeying the draw->pipeline.point_sprite state. Fixes point sprites in llvmpipe driver.
| * llvmpipe: implement sprite coord origin modesBrian Paul2010-09-201-6/+12
| |
| * llvmpipe: rename sprite field, add sprite_coord_originBrian Paul2010-09-205-6/+10
| |
| * llvmpipe: clean-up, comments in setup_point_coefficient()Brian Paul2010-09-201-5/+10
| |
| * llvmpipe: reformatting, remove trailing whitespace, etcBrian Paul2010-09-201-21/+23
| |
| * llvmpipe: indentation fixBrian Paul2010-09-201-1/+1
| |
| * llvmpipe: maintain fragment shader state for draw moduleBrian Paul2010-09-202-0/+14
| |
| * gallium/docs: added new pipeline.txt diagramBrian Paul2010-09-171-0/+128
| | | | | | | | | | | | This diagram shows the rendering pipeline with an emphasis on the inputs/outputs for each stage. Some stages emit new vertex attributes and others consume some attributes.
| * gallium: rework handling of sprite_coord_enable stateBrian Paul2010-09-1712-94/+172
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement the pipe_rasterizer_state::sprite_coord_enable field in the draw module (and softpipe) according to what's specified in the documentation. The draw module can now add any number of extra vertex attributes to a post-transformed vertex and generate texcoords for those attributes per sprite_coord_enable. Auto-generated texcoords for sprites only worked for one texcoord unit before. The frag shader gl_PointCoord input is now implemented like any other generic/texcoord attribute. The draw module now needs to be informed about fragment shaders since we need to look at the fragment shader's inputs to know which ones need auto-generated texcoords. Only softpipe has been updated so far.
| * gallium: better docs for pipe_rasterizer_state::sprite_coord_enableBrian Paul2010-09-171-5/+13
| |
* | glx: Hold on to drawables if we're just switching to another contextKristian Høgsberg2010-09-211-1/+4
| | | | | | | | https://bugs.freedesktop.org/show_bug.cgi?id=30234
* | d3d1x: actually enable and fix blob apisLuca Barbieri2010-09-212-6/+7
| |
* | d3d1x: add missing fileLuca Barbieri2010-09-211-0/+87
| |
* | d3d1x: fix compilation with recent Wine versions installedLuca Barbieri2010-09-211-1/+1
| | | | | | | | | | | | | | 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.
* | d3d1x: add blob and signature extraction APIsLuca Barbieri2010-09-217-13/+116
| | | | | | | | NOTE: untested, needs a testing tool!
* | llvmpipe: fix flatshading in new line codeKeith Whitwell2010-09-211-6/+13
| | | | | | | | Calculate interpolants before rearranging the vertices.
* | d3d1x: add new Direct3D 10/11 COM state tracker for GalliumLuca Barbieri2010-09-21108-0/+26335
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | r600g: Removed debug code.Tilman Sauerbeck2010-09-211-1/+0
| | | | | | | | Signed-off-by: Tilman Sauerbeck <[email protected]>
* | r600g: fix eg texture borders.Dave Airlie2010-09-214-28/+35
| | | | | | | | texture border regs are indexed on evergreen.
* | r600g: fixup evergreen miptree setup.Dave Airlie2010-09-211-2/+5
| | | | | | | | | | | | eg seems to have a higher pitch aligmment requirement and uses r700 cube setup this fixes a couple of piglit tests here.
* | r300/compiler: Refactor the pair instruction data structuresTom Stellard2010-09-204-38/+21
| | | | | | | | | | | | | | | | | | | | | | 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.
* | r600g: set back to correct codepaths.Dave Airlie2010-09-211-1/+1
| | | | | | | | Jerome please use git diff and git show before pushing.
* | r600g: deal with overflow of VTX/TEX CF clauses.Dave Airlie2010-09-211-2/+8
| | | | | | | | running piglit's texrect-many caused the vtx to overflow.
* | tgsi: Remove duplicate case value.Vinson Lee2010-09-201-1/+0
| |
* | dri/nouveau: Fix software mipmap generation on 1x1 textures.Francisco Jerez2010-09-211-1/+1
| |
* | dri/nv10-nv20: Fix texturing in some cases after a base level change.Francisco Jerez2010-09-213-11/+10
| |
* | dri/nouveau: Cleanup more references to old FBOs and VBOs.Francisco Jerez2010-09-212-4/+4
| |
* | dri/nouveau: Remove unnecessary assertion.Francisco Jerez2010-09-211-5/+0
| |
* | dri/nv04: Use nvgl_wrap_mode().Francisco Jerez2010-09-211-20/+2
| |
* | tgsi: Actually care what check_soa_dependencies saysJakob Bornecrantz2010-09-211-17/+39
| | | | | | | | | | | | Thanks to José for the more complete list of supported opcodes. NOTE: This is a candidate for the 7.9 branch.