summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* draw llvm: fix some silly mistakesZack Rusin2010-03-302-8/+15
| | | | | the vs_type selection isn't ideal, but for now both llvmpipe's fs and vs do the same thing which is operate on 4xfloat vector as the base type
* draw llvm: we translate between pointers, not values directlyZack Rusin2010-03-301-11/+12
|
* draw llvm: various fixes for the translation codeZack Rusin2010-03-305-243/+206
| | | | the from translation isn't quite right yet
* draw llvmpipe: lots of fixes for fetch/emitZack Rusin2010-03-294-170/+160
| | | | | the values passed are still not right, but the general scheme is looking good.
* Merge remote branch 'origin/master' into gallium_draw_llvmZack Rusin2010-03-151486-193649/+39091
|\
| * llvmpipe: updated status in README fileBrian Paul2010-03-151-6/+13
| |
| * progs/objviewer: remove debug codeBrian Paul2010-03-151-2/+2
| |
| * gallivm: fix typo/bug in lp_build_sgn()Brian Paul2010-03-151-1/+1
| | | | | | | | | | We were never returning -1 as a result. This fixes some inverted/flipped faces with cube mapping.
| * gallivm: add min_lod==max_lod special-case code in lp_build_lod_selector()Brian Paul2010-03-151-72/+83
| | | | | | | | | | | | When min_lod==max_lod we don't need to go through all the work of computing the lod from partial derivatives. This is hit by the mipmap generation utility code.
| * gallivm: asst clean-ups, comments, etc.Brian Paul2010-03-151-54/+60
| |
| * gallivm: implement minification/magnification selectionBrian Paul2010-03-151-51/+137
| | | | | | | | | | | | | | Use the LOD value to determine whether to use the minification vs. magnification filter. All mipmap sampling modes work now.
| * gallivm: fix incorrect clamp in lp_build_linear_mip_levels()Brian Paul2010-03-151-1/+1
| |
| * gallivm: fix incorrect floor(), itrunc()Brian Paul2010-03-151-2/+5
| | | | | | | | | | | | | | | | LLVMBuildFPTrunc() should be used for double->float conversion, not float->int conversion. There should be a better way to compute floor(), ceil(), etc that doesn't involve float->int->float conversion.
| * nv40: remove leftover nv40_transfer.c from unification into nvfxLuca Barbieri2010-03-151-181/+0
| |
| * r300g: rebuild screen/winsys interfaceDave Airlie2010-03-1523-279/+1465
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This creates a cleaner winsys and drop the simple screen stuff. It makes r300g use pb_bufmgr structs. It also tries to avoid overheads from mapping too often. v5: clean warnings v6: break out of cache check on first buffer - since most likely the first busy one implies all after it are busy. v7: cleanup a bit v8-merged: drop cman for now to just get all the interface changes in first. rework to changes that happened upstream Signed-off-by: Dave Airlie <[email protected]>
| * nv50: reset vbo_fifo before each validateBen Skeggs2010-03-151-0/+1
| |
| * nvfx: remove src_native_swz, which was a no-opLuca Barbieri2010-03-152-88/+0
| | | | | | | | | | | | | | | | | | | | src_native_swz was used to translate 0/1 swizzles back when Gallium supported them. That support was later removed from Gallium, and the function currently always returns true. Remove it.
| * nvfx: clean up shader headerLuca Barbieri2010-03-154-103/+92
| | | | | | | | | | | | | | | | Currently the behavior of shader.h depends on some constants that are defined differently in vertex and fragment programs. This patch cleans that up by splitting the relevant symbols in vertex program and fragment program variants
| * nvfx: draw: make swtnl draw_elements actually work.Luca Barbieri2010-03-151-1/+1
| | | | | | | | It was totally broken: the index buffer was passed as NULL!
| * nvfx: draw: emit color as floating pointLuca Barbieri2010-03-151-1/+1
| | | | | | | | Don't lose precision by converting to u8.
| * nvfx: draw: make perspective corrective texturing workLuca Barbieri2010-03-151-1/+8
| | | | | | | | | | | | | | We must divide everything in the position by w, and emit position as a 4-component vector. Not sure why we must divide, but it works (see progs/redbook/checker).
| * nvfx: draw: create draw vp with uregLuca Barbieri2010-03-151-43/+24
| | | | | | | | | | This avoids duplicating the vertex program generation logic and makes the same code work for both nv30 and nv40.
| * nvfx: add NOUVEAU_SWTNL to force swtnl at runtimeLuca Barbieri2010-03-151-3/+10
| | | | | | | | Replace the FORCE_SWTNL macro with a NOUVEAU_SWTNL environment variable.
| * nvfx: move nv04_surface_2d.c into nvfx directoryLuca Barbieri2010-03-156-5/+4
| | | | | | | | It is only used on pre-nv50 and nvfx is the only Gallium pre-nv50 driver.
| * nvfx: fix quads drawingLuca Barbieri2010-03-151-1/+1
| | | | | | | | | | | | The primitive splitting code is totally broken and will be rewritten. Fix the most important bug now though.
| * nvfx: fix viewport state after bypass removal for swtnlLuca Barbieri2010-03-151-11/+24
| | | | | | | | | | | | The adjustment of nv30/nv40 after the removal of bypass incorrectly removed the hardware viewport bypass code, which we still need for swtnl and also forgot to remove NVFX_NEW_RAST from pipe.
| * nv30, nv40: move last files to nvfx/ and rm -rf nv30 nv40Luca Barbieri2010-03-1513-56/+10
| | | | | | | | | | | | | | | | | | | | | | This is the last nvfx unification patch. nv[34]0_fragtex.c are moved to the common directory nv[34]0_shader.h are renamed to nv[34]0_vertprog.h and moved to the common directory The separate nv30 and nv40 directories are removed from the build system
| * nv30, nv40: partially non-trivially unify sampler state in nv[34]0_state.cLuca Barbieri2010-03-1510-399/+252
| | | | | | | | | | | | Many things, like texture wrap modes and min/mag filters are common. Some others, like annisotropy and lod settings, are not.
| * nv30, nv40: partially non-trivially unify nv[34]0_fragtex.cLuca Barbieri2010-03-156-106/+64
| | | | | | | | | | The bulk files cannot be unified, but the frontend can and allows to share some code and simplify state_emit.c
| * nv30, nv40: unify nv[34]0_context.cLuca Barbieri2010-03-157-106/+9
| | | | | | | | | | They are now almost identical, except for nv30 vs nv40 fragtex initialization.
| * nv30, nv40: fully unify nv[34]0_context.hLuca Barbieri2010-03-159-37/+24
| | | | | | | | Move the remaining content to the common header.
| * nv30, nv40: non-trivially unify nv[34]0_screen.cLuca Barbieri2010-03-157-434/+181
| | | | | | | | | | | | The files have the same structure but are substantially different. They are unified with appropriate conditionals.
| * nv30, nv40: non-trivially unify nv[34]0_vertprog.cLuca Barbieri2010-03-1510-997/+205
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vertprog.c is similar but has substantial differences: 1. nv40 supports clip planes 2. nv40 uses a more advanced register allocator 3. Some register setup is different 4. Constants with the same name have different values This patch unifies the two files. nv30 gains clip plane support and the nv40 register allocator. A new NVFX_VP(x) macro is introduced that at runtime resolved to either the nv30 or the nv40 constant value. nv30 clip planes are not tested and might not work
| * nv30, nv40: partially unify nv[34]0_state.cLuca Barbieri2010-03-159-1162/+618
| | | | | | | | | | | | | | | | | | state.c is identical except for: 1. Sampler state creation is different 2. nv40 swtnl support 3. Separate blend equations on nv40 This patch unifies nv[34]0_state.c, except the sampler state creation code.
| * nv30, nv40: unify nv[34]0_vbo.cLuca Barbieri2010-03-1511-629/+50
| | | | | | | | | | | | The files are identical, except for swtnl support which is commented out on nv30 and restart being initialized on nv30 to avoid a compiler warning.
| * nv30, nv40: non-trivially unify nv[34]0_draw.cLuca Barbieri2010-03-1512-119/+61
| | | | | | | | | | | | | | | | | | | | | | | | nv30_draw.c is a stub. This patch makes both nv30 and nv40 use the nv40 swtnl path. Note that this doesn't actually work on nv30 because the vertex program is encoded in the nv40-only layout. However, swtnl was unimplemented before on nv30, so this is not a regression. Furthermore, a patch to fix this is available near the end of the patchset.
| * nv30, nv40: non-trivially unify nv[34]0_fragprog.cLuca Barbieri2010-03-1511-981/+99
| | | | | | | | | | | | | | | | | | The files are mostly the same except: 1. On NV40, some TGSI instructions are emulated with several hardware ones 2. Some instructions such as DDX/DDY, and STR were missing from nv30 3. NV40 has more sophisticated register management nv30 now supports all instructions and uses the nv40 register management.
| * nv30, nv40: non-trivially partially unify nv[34]0_shader.hLuca Barbieri2010-03-158-1018/+726
| | | | | | | | | | | | | | | | | | | | | | | | shader.h is similar, except for the following differences: 1. The instruction sets are not exactly the same, but mostly similar 2. Vertex program fields are in different bit positions This patch unifies all parts of nv[34]0_shader.h except the vertex program fields. Vertex opcodes are also changed so that the constant names includes SCA if it is a scalar opcode and VEC if it is a vector opcode.
| * nv30, nv40: non-trivially unify nv[34]0_state_fb.cLuca Barbieri2010-03-159-212/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The files are significantly different due to: 1. nv30 support 2 render targets, nv40 4 2. z-buffer pitch is set differently 3. nv30 has a limitation of colour_bits >= zeta_bits. This may not actually exist in the driver though 4. nv30 points color0 at depth in the depth-only case 5. nv30 sets NV34TCL_VIEWPORT_TX_ORIGIN to 0. This is probably unnecessary This patch attempts to unify the two files and preserve the existing behavior.
| * nv30, nv40: unify nv[34]0_state_viewport.cLuca Barbieri2010-03-159-51/+7
| | | | | | | | The files are identical, except for an extra comment in nv30.
| * nv30, nv40: unify nv[34]0_query.cLuca Barbieri2010-03-1512-236/+42
| | | | | | | | The files are identical except formatting.
| * nv30, nv40: unify nv[34]0_miptree.cLuca Barbieri2010-03-159-264/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only difference between nv30 and nv40 is that nv30 allowed swizzling for more texture types. This patch preserves the existing behavior, using conditional code. Note however that this does not make sense, since all texture types can be swizzled on nv40 and probably on nv30 too. However, the handling of swizzled surfaces in the current 2D code is partially broken, so it's best not to touch this. A whole rewrite of the 2D code will be submitted, which will solve this problem.
| * nv30, nv40: unify nv[34]0_state_stipple.cLuca Barbieri2010-03-159-48/+7
| | | | | | | | | | | | | | The files are identical, except for the fact that the nv40 version forgets to unreference the stateobj. Unified to the correct nv30 version.
| * nv30, nv40: unify identical nv[34]0_state_zsa.cLuca Barbieri2010-03-159-56/+12
| |
| * nv30, nv40: unify identical nv[34]0_state_scissor.cLuca Barbieri2010-03-159-45/+7
| |
| * nv30, nv40: unify identical nv[34]0_state_rasterizer.cLuca Barbieri2010-03-1510-39/+20
| |
| * nv30, nv40: unify identical nv[34]0_state_blend.cLuca Barbieri2010-03-159-56/+13
| |
| * nv30, nv40: non-trivially unify nv[34]0_state_emit.cLuca Barbieri2010-03-1513-199/+75
| | | | | | | | | | | | | | | | The files are the same except for swtnl support on nv40 and for texture cache flushing on nv40. Unify them, and use a macro to define 4 versions of render_states, for all combinations of nvfx and hwtnl/swtnl.
| * nv30, nv40: unify identical nv[34]0_transfer.cLuca Barbieri2010-03-159-26/+26
| |
| * nv30, nv40: unify identical nv[34]0_clear.cLuca Barbieri2010-03-1510-32/+10
| |