summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* nvfx: only expose one rt on nv30Xavier Chantry2010-11-201-1/+1
| | | | We do not know how to use more, GL_ARB_draw_buffers is not exposed on blob.
* r600g: Fix location for clip plane registersOwen W. Taylor2010-11-202-8/+8
| | | | | | | | The stride between the different clip plane registers was incorrect. https://bugs.freedesktop.org/show_bug.cgi?id=31788 agd5f: fix evergreen as well.
* r300g: fix rendering with no vertex elementsMarek Olšák2010-11-204-5/+40
| | | | | Fixes glsl-vs-point-size, although I meant to fix glsl-novertexdata. Since swrast fails glsl-novertexdata too, I guess it's a core issue.
* i965: Remove duplicate MRF writes in the FS backend.Eric Anholt2010-11-192-0/+152
| | | | | | | | | | This is quite common for multitexture sampling, and not only cuts down on the second and later set of MOVs, but typically also allows compute-to-MRF on the first set. No statistically siginficant performance difference in nexuiz (n=3), but it reduces instruction count in one of its shaders and seems like a good idea.
* i965: Improve compute-to-mrf.Eric Anholt2010-11-191-53/+49
| | | | | | | | | | | | We were skipping it if the instruction producing the value we were going to compute-to-mrf used its result reg as a source reg. This meant that the typical "write interpolated color to fragment color" or "texture from interpolated texcoord" shader didn't compute-to-MRF. Just don't check for the interference cases until after we've checked if this is the instruction we wanted to compute-to-MRF. Improves nexuiz high-settings performance on my laptop 0.48% +- 0.08% (n=3).
* ir_to_mesa: Detect and emit MOV_SATs for saturate constructs.Eric Anholt2010-11-191-0/+32
| | | | | The goal here is to avoid regressing performance on ir_to_mesa drivers for fixed function fragment shaders requiring saturates.
* i965: Recognize saturates and turn them into a saturated mov.Eric Anholt2010-11-192-0/+27
| | | | | | On pre-gen6, this turns 4 instructions into 1. We could still do better by folding the saturate into the instruction generating the value if nobody else uses it, but that should be a separate pass.
* glsl: Add a helper function for determining if an rvalue could be a saturate.Eric Anholt2010-11-192-0/+58
| | | | | | Hardware pretty commonly has saturate modifiers on instructions, and this can be used in codegen to produce those, without everyone else needing to understand clamping other than min and max.
* i965: Fold constants into the second arg of BRW_SEL as well.Eric Anholt2010-11-191-0/+1
| | | | This hits a common case with min/max operations.
* i965: Remove extra \n at the end of every instruction in INTEL_DEBUG=wm.Eric Anholt2010-11-191-1/+0
|
* i965: Just use memset() to clear most members in FS constructors.Eric Anholt2010-11-191-18/+11
| | | | This should make it a lot harder to forget to zero things.
* i965: Fix compute_to_mrf to not move a MRF write up into another live range.Eric Anholt2010-11-191-7/+5
| | | | Fixes glsl-fs-copy-propagation-texcoords-1.
* mesa: Include C++ files in the makedepend of DRI drivers.Eric Anholt2010-11-191-2/+3
|
* glsl: Fix type of label 'default' in switch statement.Vinson Lee2010-11-191-1/+1
|
* glsl: Add lower_vector.cpp to SConscript.Vinson Lee2010-11-191-0/+1
|
* glsl: Fix matrix constructors with vector parametersIan Romanick2010-11-191-9/+9
| | | | | | | When the semantics of write masks in assignments were changed, this code was not correctly updated. Fixes piglit test glsl-mat-from-vec-ctor-01.
* glsl: Combine many instruction lowering passes into one.Kenneth Graunke2010-11-1911-383/+281
| | | | | | | This should save on the overhead of tree-walking and provide a convenient place to add more instruction lowering in the future. Signed-off-by: Ian Romanick <[email protected]>
* glsl: Simplify a type check by using type->is_integer().Kenneth Graunke2010-11-191-2/+1
|
* glsl: Add ir_quadop_vector expressionIan Romanick2010-11-1911-6/+460
| | | | | | | | | | The vector operator collects 2, 3, or 4 scalar components into a vector. Doing this has several advantages. First, it will make ud-chain tracking for components of vectors much easier. Second, a later optimization pass could collect scalars into vectors to allow generation of SWZ instructions (or similar as operands to other instructions on R200 and i915). It also enables an easy way to generate IR for SWZ instructions in the ARB_vertex_program assembler.
* glsl: Add unary ir_expression constructorIan Romanick2010-11-192-0/+21
|
* glsl: Add ir_rvalue::is_negative_one predicateIan Romanick2010-11-192-3/+58
|
* glsl: Eliminate assumptions about size of ir_expression::operandsIan Romanick2010-11-197-7/+13
| | | | This may grow in the near future.
* glsl: Add ir_unop_sin_reduced and ir_unop_cos_reducedIan Romanick2010-11-196-0/+120
| | | | | | | | | | | | The operate just like ir_unop_sin and ir_unop_cos except that they expect their inputs to be limited to the range [-pi, pi]. Several GPUs require this limited range for their sine and cosine instructions, so having these as operations (along with a to-be-written lowering pass) helps this architectures. These new operations also matche the semantics of the GL_ARB_fragment_program SCS instruction. Having these as operations helps in generating GLSL IR directly from assembly fragment programs.
* r600g: use full range of VS resources for vertex samplersAlex Deucher2010-11-193-4/+2
| | | | | Now that we have fetch shaders, the full range of VS resources can be used for sampling.
* r600g: use meaningful defines for chiprevAlex Deucher2010-11-193-19/+24
| | | | Makes the code much clearer.
* r600g: translate ARR instruction for evergreenAlex Deucher2010-11-191-4/+13
| | | | | evergreen variant of: 9f7ec103e26c67cb077fd7d94d2fb68562b86c40
* r600g: add fetch shader capabilitiesJerome Glisse2010-11-1911-12/+125
| | | | | | | | Use fetch shader instead of having fetch instruction in the vertex shader. Allow to restrict shader update to a smaller part when vertex buffer input layout changes. Signed-off-by: Jerome Glisse <[email protected]>
* r600g: All EVENT_WRITE packets need the EVENT_INDEX fieldAlex Deucher2010-11-192-13/+13
| | | | 6xx-evergreen
* dri/nouveau: Clean up magic numbers in get_rt_formatViktor Novotný2010-11-193-13/+13
| | | | | Signed-off-by: Viktor Novotný <[email protected]> Signed-off-by: Francisco Jerez <[email protected]>
* r600g: fix occlusion query on evergreen (avoid lockup)Jerome Glisse2010-11-192-2/+11
| | | | | | | Occlusion query on evergreen need the event index field to be set otherwise we endup locking up the GPU. Signed-off-by: Jerome Glisse <[email protected]>
* ir_to_mesa: Generate smarter code for some conditional movesIan Romanick2010-11-181-12/+99
| | | | | | | Condiation moves with a condition of (a < 0), (a > 0), (a <= 0), or (a >= 0) can be generated with "a" directly as an operand of the CMP instruction. This doesn't help much now, but it will help with assembly shaders that use the CMP instruction.
* glsl: Make is_zero and is_one virtual methods of ir_rvalueIan Romanick2010-11-182-21/+36
| | | | | This eliminates the need in some cames to validate that an rvalue is an ir_constant before checking to see if it's 0 or 1.
* mesa: pass gl_format to _mesa_init_teximage_fields()Brian Paul2010-11-1818-186/+261
| | | | | | | | | | | This should prevent the field going unset in the future. See bug http://bugs.freedesktop.org/show_bug.cgi?id=31544 for background. Also remove unneeded calls to clear_teximage_fields(). Finally, call _mesa_set_fetch_functions() from the _mesa_init_teximage_fields() function so callers have one less thing to worry about.
* scons: Use inline wrap helpers more consistently.José Fonseca2010-11-183-19/+12
|
* gallium/noop: report GL 2.1Dave Airlie2010-11-181-5/+8
| | | | | this should at least make app use the same paths as they would for a real driver.
* glsl: Fix 'control reaches end of non-void function' warning.Vinson Lee2010-11-171-0/+3
| | | | | | | Fix this GCC warning. ir.cpp: In static member function 'static unsigned int ir_expression::get_num_operands(ir_expression_operation)': ir.cpp:199: warning: control reaches end of non-void function
* mesa: Clean up core.h.Chia-I Wu2010-11-181-2/+0
| | | | Remove version.h and context.h from core.h.
* st/glx: Replace MESA_VERSION_STRING by xmesa_get_name.Chia-I Wu2010-11-183-6/+16
| | | | | xmesa_get_name returns the name of the st_api, which is the same as MESA_VERSION_STRING.
* st/wgl: Use st_context_iface::share for DrvShareLists.Chia-I Wu2010-11-181-11/+4
|
* gallium: Add st_context_iface::share to st_api.Chia-I Wu2010-11-182-1/+28
| | | | | It will be used to implement wglShareLists. Fill st_context_iface::copy for glXCopyContext as well.
* gallium: Add st_api::name.Chia-I Wu2010-11-185-0/+13
| | | | It is the name of the rendering API. This field is informative.
* st/vega: Do not wait NULL fences.Chia-I Wu2010-11-181-3/+4
|
* i965: Eliminate dead code more aggressively.Eric Anholt2010-11-181-13/+4
| | | | | | | | | | If an instruction writes reg but nothing later uses it, then we don't need to bother doing it. Before, we were just killing code that was never read after it was ever written. This removes many interpolation instructions for attributes with only a few comopnents used. Improves nexuiz high-settings performance .46% +/- .12% (n=3) on my Ironlake.
* mesa: upgrade to glext.h version 66Brian Paul2010-11-1711-43/+56
| | | | | The type of the num/count parameter to glProgramParameters4[df]vNV() changed so some API dispatch code needed updates too.
* r600g: fix buffer alignmentAlex Deucher2010-11-172-10/+41
| | | | This should fix the remaining buffer alignment issues in r600g.
* i965: Fail on loops on gen6 for now until we write the EU emit code for it.Eric Anholt2010-11-181-0/+4
|
* i965: Add dumping of the sampler default color.Eric Anholt2010-11-181-0/+11
|
* i965: Add state dumping for sampler state.Eric Anholt2010-11-181-2/+39
|
* mesa: Don't spam the console in a debug build unless some spam is requested.Eric Anholt2010-11-181-2/+4
| | | | | | It's annoying to use test suites under a Mesa debug build because pretty output is cluttered with stderr's continuous reports that you're still using the debug driver.
* i965: Shut up spurious gcc warning about GLSL_TYPE enums.Eric Anholt2010-11-181-0/+4
|