Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | nv50/ir/opt: Improve modifier handling. | Francisco Jerez | 2012-04-14 | 3 | -24/+66 | |
| | ||||||
* | nv50/ir: Add support for cloning FlowInsns, ImmediateVals and BBs. | Francisco Jerez | 2012-04-14 | 3 | -0/+66 | |
| | ||||||
* | nv50/ir: Decouple object cloning logic from the sub-object recursion policy. | Francisco Jerez | 2012-04-14 | 7 | -68/+181 | |
| | ||||||
* | nv50/ir: Make sure that several IR objects are destroyed on takedown. | Francisco Jerez | 2012-04-14 | 3 | -3/+17 | |
| | ||||||
* | nv50/ir: make Instruction::src/def container private | Christoph Bumiller | 2012-04-14 | 11 | -304/+320 | |
| | ||||||
* | nv50/ir: Add support for unlimited instruction arguments. | Francisco Jerez | 2012-04-14 | 7 | -211/+141 | |
| | ||||||
* | nv50/ir: temporarily exclude nv50 code emitter from build | Christoph Bumiller | 2012-04-14 | 1 | -1/+0 | |
| | | | | | It's not used yet and shouldn't have been included in the first place. | |||||
* | nv50/ir: copy value size in SSA-rename pass | Christoph Bumiller | 2012-04-14 | 1 | -0/+1 | |
| | ||||||
* | nv50/ir/opt: improve post-multiply and check target for support | Christoph Bumiller | 2012-04-14 | 4 | -35/+90 | |
| | ||||||
* | nv50/ir: add setFlagsDef/Src helper | Christoph Bumiller | 2012-04-14 | 4 | -3/+29 | |
| | | | | Will be used by nv50 target. | |||||
* | nv50/ir: add isAccessSupported check for memory access coalescing | Christoph Bumiller | 2012-04-14 | 6 | -5/+19 | |
| | ||||||
* | nv50/ir: add function for splitting a BasicBlock | Christoph Bumiller | 2012-04-14 | 3 | -9/+78 | |
| | | | | Fixes to initial implementation by Francisco Jerez. | |||||
* | nv50/ir: Allow attaching two nodes when either one is already inside the graph. | Francisco Jerez | 2012-04-14 | 1 | -5/+5 | |
| | ||||||
* | nv50/ir: Allow inserting isolated nodes to a graph. | Francisco Jerez | 2012-04-14 | 1 | -6/+4 | |
| | ||||||
* | nv50/ir: Fix memory corruption in Function::orderInstructions(). | Francisco Jerez | 2012-04-14 | 1 | -3/+7 | |
| | | | | | "iter" doesn't reference a BasicBlock directly, but a Node::Graph, i.e. BasicBlock::get() is casting to the wrong pointer type. | |||||
* | nv50/ir: Fix up insertion of PHI instructions using bb->insertHead(). | Francisco Jerez | 2012-04-14 | 1 | -1/+1 | |
| | ||||||
* | nv50/ir: fix insertHead and remove for BBs with PHI ops only | Christoph Bumiller | 2012-04-14 | 1 | -3/+10 | |
| | ||||||
* | nv50/ir: Don't crash on zero sized BitSets. | Francisco Jerez | 2012-04-14 | 1 | -0/+1 | |
| | ||||||
* | nv50/ir: Fix Interval::clear(). | Francisco Jerez | 2012-04-14 | 1 | -0/+1 | |
| | ||||||
* | nv50/ir/tgsi: handle inferSrcType(NOT) to be u32 | Christoph Bumiller | 2012-04-14 | 1 | -0/+1 | |
| | ||||||
* | nv50/ir/opt: Fix OP_NOT to modifier conversion. | Francisco Jerez | 2012-04-14 | 1 | -1/+1 | |
| | ||||||
* | r600g: disable dual-src hangs evergreen for some reason. | Dave Airlie | 2012-04-14 | 1 | -1/+1 | |
| | | | | | | This did work previously, so I've broken something. Signed-off-by: Dave Airlie <[email protected]> | |||||
* | r300/compiler: Exit immediately from rc_vert_fc() if there is an error | Tom Stellard | 2012-04-14 | 1 | -0/+4 | |
| | | | | | | | | This way we correctly report "Too many temporaries" errors. https://bugs.freedesktop.org/show_bug.cgi?id=48680 Note: This is a candidate for the stable branches. | |||||
* | r300/compiler: Copy all instruction attributes during local transfoms | Tom Stellard | 2012-04-14 | 1 | -31/+42 | |
| | | | | | | | | | | | | | | | | | | | | | Instruction attributes like WriteALUResult and ALUResultCompare were being discarded during the some of the local transformations. This fixes the following piglit tests: glsl1-inequality (vec2, pass) loopfunc fs-any-bvec2-using-if fs-op-ne-bvec2-bvec2-using-if fs-op-ne-ivec2-ivec2-using-if fs-op-ne-mat2-mat2-using-if fs-op-ne-vec2-vec2-using-if fs-op-ne-mat2x3-mat2x3-using-if fs-op-ne-mat2x4-mat2x4-using-if https://bugs.freedesktop.org/show_bug.cgi?id=45921 NOTE: This is a candidate for the stable branches. | |||||
* | r300/compiler: Fix nested flow control in r500 vertex shaders | Tom Stellard | 2012-04-13 | 11 | -178/+438 | |
| | ||||||
* | r300/compiler: Clear loop registers in vertex shaders w/o loops | Tom Stellard | 2012-04-13 | 2 | -16/+13 | |
| | | | | | | | | | | | | | | The loop registers weren't being cleared, so any shader that was executed after a shader containing loops was at risk of having a loop randomly inserted into it. This fixes over one hundred piglit tests, although these test only failed during full piglit runs and would pass if run individually. The exact number of piglit tests that this patch fixes will vary depending on the version of piglit and the order the tests are run. NOTE: This is a candidate for the stable branches. | |||||
* | glsl: If an "if" has no "then" or "else" code left, remove it. | Eric Anholt | 2012-04-13 | 1 | -0/+8 | |
| | | | | | | | Cuts 8/1068 instructions from glyphy's fragment shaders on i965. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]> | |||||
* | glsl: Add a helper for generating temporary variables in ir_builder. | Eric Anholt | 2012-04-13 | 3 | -31/+23 | |
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> | |||||
* | glsl: Add a helper for ir_builder to make dereferences for assignments. | Eric Anholt | 2012-04-13 | 3 | -49/+59 | |
| | | | | | | v2: Fix writemask setup for non-vec4 assignments. Reviewed-by: Kenneth Graunke <[email protected]> | |||||
* | glsl: Make a little tracking class for emitting IR lists. | Eric Anholt | 2012-04-13 | 3 | -50/+42 | |
| | | | | | | | This lets us significantly shorten p->instructions->push_tail(ir), and will be used in a few more places. Reviewed-by: Kenneth Graunke <[email protected]> | |||||
* | glsl: Add common swizzles to ir_builder. | Eric Anholt | 2012-04-13 | 3 | -48/+110 | |
| | | | | | | | | | | Now we can fold a bunch of our expression setup in ff_fragment_shader into single-line, parseable commits. v2: Make it actually work. I wasn't setting num_components in the mask structure, and not setting up a mask structure is way easier. Reviewed-by: Kenneth Graunke <[email protected]> | |||||
* | glsl: Let ir_builder expressions take un-dereferenced variables. | Eric Anholt | 2012-04-13 | 3 | -29/+46 | |
| | | | | | | | | | | | Having to explicitly dereference is irritating and bloats the code, when the compiler can detect and do the right thing. v2: Use a little shim class to produce the automatic dereference generation at compile time as opposed to runtime, while also allowing compile-time type checking. Reviewed-by: Kenneth Graunke <[email protected]> | |||||
* | glsl: Create an ir_builder helper for hand-generating IR. | Eric Anholt | 2012-04-13 | 4 | -82/+151 | |
| | | | | | | | | | | | | | | The C++ constructors with placement new, while functional, are extremely verbose, leading to generation of simple GLSL IR expressions like (a * b + c * d) expanding to many lines of code and using lots of temporary variables. By creating a new ir_builder.h that puts simple generators in our namespace and taking advantage of ralloc_parent(), we can generate much more compact code, at a minor runtime cost. v2: Replace ir_instruction usage with just ir_rvalue. v3: Drop remaining missed as_rvalue() in v2. Reviewed-by: Kenneth Graunke <[email protected]> | |||||
* | nv50,nvc0: fix handling of user vbufs with stride < access size | Christoph Bumiller | 2012-04-14 | 6 | -35/+63 | |
| | ||||||
* | nvc0: prefix all macro methods with MACRO | Christoph Bumiller | 2012-04-14 | 6 | -35/+36 | |
| | | | | Some of them have non-macro counterparts. | |||||
* | nvc0: replace VERTEX_DATA push mode with translate to buffer | Christoph Bumiller | 2012-04-14 | 5 | -57/+748 | |
| | | | | | While pushing vertices through the FIFO is relatively fast on nv50, it's horribly slow on nvc0. | |||||
* | nvc0: improve vertex state validation | Christoph Bumiller | 2012-04-14 | 6 | -97/+159 | |
| | | | | Now updating vertex attribute format only when necessary. | |||||
* | nvc0: track texture dirty state individually | Christoph Bumiller | 2012-04-14 | 5 | -40/+81 | |
| | ||||||
* | nv50,nvc0: use new scratch buffers code | Christoph Bumiller | 2012-04-14 | 8 | -84/+62 | |
| | ||||||
* | nouveau: add new shared scratch buffers | Christoph Bumiller | 2012-04-14 | 3 | -0/+185 | |
| | ||||||
* | nvc0: only force early fragment tests if requested by shader | Christoph Bumiller | 2012-04-14 | 5 | -14/+7 | |
| | ||||||
* | nv50,nvc0: hold references to the framebuffer surfaces | Christoph Bumiller | 2012-04-14 | 4 | -2/+32 | |
| | ||||||
* | r300g: align vertex buffer suballocations to 4 | Marek Olšák | 2012-04-13 | 1 | -1/+1 | |
| | ||||||
* | u_blitter: align vertex buffer suballocations to 4 | Marek Olšák | 2012-04-13 | 1 | -1/+1 | |
| | ||||||
* | xorg/nouveau: switch to libdrm_nouveau-2.0 | Marcin Slusarz | 2012-04-13 | 1 | -3/+3 | |
| | ||||||
* | targets/{egl-static,gbm}: further clean-up the nvfx remains | Martin Peres | 2012-04-14 | 2 | -2/+2 | |
| | ||||||
* | nvc0: remove include of old libdrm_nouveau's nouveau_reloc.h | Christoph Bumiller | 2012-04-14 | 1 | -2/+0 | |
| | ||||||
* | nv50,nvc0: handle PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS | Christoph Bumiller | 2012-04-14 | 2 | -0/+4 | |
| | ||||||
* | nv30: s/DUAL_SOURCE_BLEND/MAX_DUAL_SOURCE_RENDER_TARGETS | Christoph Bumiller | 2012-04-14 | 1 | -1/+1 | |
| | | | | Merge accident. | |||||
* | nv30: import new driver for GeForce FX/6/7 chipsets, and Quadro variants | Ben Skeggs | 2012-04-14 | 44 | -7/+13724 | |
| | | | | | | | | | | | | | | | | | | The primary motivation for this rewrite was to have a maintainable driver going forward, as nvfx was quite horrible in a lot of ways. The driver is heavily based on the design of the nv50/nvc0 3d drivers we already have, and uses the same common buffer/fence code. It also passes a HEAP more piglit tests than nvfx did, supports a couple more features, and a few more to come still probably. The CPU footprint of this driver is far far less than nvfx, and translates into far greater framerates in a lot of applications (unless you're using a CPU that's way way newer than the GPUs of these generations....) Basically, we once again have a maintained driver for these chipsets \o/ Feel free to report bugs now! |