summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* gallium: Remove redundant sw and debug target helpersJakob Bornecrantz2010-11-179-272/+1
|
* graw: Use inline debug helper instead of non-inline versionJakob Bornecrantz2010-11-174-5/+10
|
* libgl-xlib: Use inline debug helper instead of non-inline versionJakob Bornecrantz2010-11-173-21/+8
|
* glsl: Improve usage message for glsl_compilerChad Versace2010-11-171-9/+19
| | | | | | | | | | | | | | | | | The new usage message lists possible command line options. (Newcomers to Mesa currently have to trawl through the source to find the command line options, and we should save them from that trouble.) Example Output -------------- usage: ./glsl_compiler [options] <file.vert | file.geom | file.frag> Possible options are: --glsl-es --dump-ast --dump-hir --dump-lir --link
* glsl: Refactor get_num_operands.Kenneth Graunke2010-11-172-71/+21
| | | | | | | | | | This adds sentinel values to the ir_expression_operation enum type: ir_last_unop, ir_last_binop, and ir_last_opcode. They are set to the previous one so they don't trigger "unhandled case in switch statement" warnings, but should never be handled directly. This allows us to remove the huge array of 1s and 2s in ir_expression::get_num_operands().
* r600g: code cleanup (indent, trailing space, empty line ...)Jerome Glisse2010-11-179-73/+70
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* glsl: Remove the ir_binop_cross opcode.Kenneth Graunke2010-11-177-54/+8
|
* Refresh autogenerated file builtin_function.cpp.Kenneth Graunke2010-11-171-3/+5
|
* glsl: Reimplement the "cross" built-in without ir_binop_cross.Kenneth Graunke2010-11-171-3/+5
| | | | | | We are not aware of any GPU that actually implements the cross product as a single instruction. Hence, there's no need for it to be an opcode. Future commits will remove it entirely.
* Regenerate glcpp parser.Kenneth Graunke2010-11-171-85/+90
|
* glsl: Unconditionally define GL_FRAGMENT_PRECISION_HIGH in ES2 shaders.Kenneth Graunke2010-11-171-1/+6
| | | | | | | | | This is really supposed to be defined only if the driver supports highp in the fragment shader - but all of our current ES2 implementations do. So, just define it. In the future, we'll need to add a flag to gl_context and only define the macro if the flag is set. "Fixes" freedesktop.org bug #31673.
* egl_dri2: Add missing intel chip ids.Robert Hooker2010-11-171-0/+12
| | | | Signed-off-by: Robert Hooker <[email protected]>
* glsl: Fix Doxygen tag \file in recently renamed filesChad Versace2010-11-1723-23/+23
|
* glsl: Fix erroneous cast in ast_jump_statement::hir()Chad Versace2010-11-171-2/+1
| | | | | | Return values were erroneously cast from (ir_rvalue*) to (ir_expression*). NOTE: This is a candidate for the 7.9 branch.
* glsl: Fix constant expression handling for <, >, <=, >= on vectors.Kenneth Graunke2010-11-171-48/+60
| | | | | | | | | | | | | | | | | ir_binop_less, ir_binop_greater, ir_binop_lequal, and ir_binop_gequal are defined to work on vectors as well as scalars, as long as the two operands have the same type. This is evident from both ir_validate.cpp and our use of these opcodes in the GLSL lessThan, greaterThan, lessThanEqual, greaterThanEqual built-in functions. Found by code inspection. Not known to fix any bugs. Presumably, our tests for the built-in comparison functions must pass because C.E. handling is done on the ir_call of "greaterThan" rather than the inlined opcode. The C.E. handling of the built-in function calls is correct. NOTE: This is a candidate for the 7.9 branch.
* r300g: print FS inputs uninitialized due to hardware limits to stderrMarek Olšák2010-11-171-7/+17
|
* r600c/evergreen: texture align is group_bytes just like 6xx/7xxAlex Deucher2010-11-172-14/+15
| | | | | | Default group bytes to 512 on evergreen. Don't query tiling config yet for evergreen, the current info returned is not adequate for evergreen (no way to get bank info).