summaryrefslogtreecommitdiff
path: root/src/mesa
AgeCommit message (Collapse)Author
2010-08-26i965: Start building the codegen visitor.Eric Anholt
This can successfully emit a real program that generates magenta now.
2010-08-26i965: Start building direct GLSL2 IR to 965 assembly codegen.Eric Anholt
Our channel-expressions and vector-splitting changes now happen into a private copy of the IR that we maintain for ourselves. Uniform assignment still happens by the core, so we continue using Mesa IR generation not just for swrast fallbacks but also for uniform values (since there's no storage for their contents other than shader_program->FragmentProgram->Parameters->ParameterValues). And most importantly, at the moment no actual codegen is hooked up other than emitting our favorite color to the framebuffer.
2010-08-26i965: Add new pass to split vectors into scalar variablesEric Anholt
Combined with the previous pass, this lets other optimization passes do their work thanks to ir_tree_grafting. Still have regression in instruction count with INTEL_NEW_FS, but register count is even better.
2010-08-26i965: Add a pass for the FS to reduce vector expressions down to scalar.Eric Anholt
This is a step towards implementing a GLSL IR backend for the 965 fragment shader. Because it has downsides with the current codegen, it is hidden under the environment variable INTEL_NEW_FS. This results in an increase in instruction count at the moment (1444 -> 1752 for glsl-fs-raytrace, 345 -> 359 on my demo), because dot products are turned into a series of multiplies and adds instead of a custom expansion of MULs and MACs, and by not splitting the variable types up we don't get tree grafting and thus there are extra moves of temporary storage. However, register count drops for the non-GLSL path (64 -> 56 on my demo shader) because the register allocator sees all the sub-operations.
2010-08-26i965: Start building 965 FS backend.Eric Anholt
2010-08-26ir_to_mesa: Don't assume that an ir_dereference_array is of a variable.Eric Anholt
Fixes: glsl-array-bounds-02 (software) glsl-array-bounds-04 glsl-array-bounds-06 (software) glsl-array-bounds-08
2010-08-26st/mesa: Remove unnecessary header.Vinson Lee
2010-08-26i965: Add support for destination RelAddr writes in the VS.Eric Anholt
Fixes: glsl-vs-varying-array
2010-08-26i965: Fix the test for variable indexing of shader inputs.Eric Anholt
Shader inputs appear in source registers, not dst registers. Catches unsupported shaders in glsl-fs-varying-array and Humus RaytracedShadows.
2010-08-26st/mesa: add missing packed depth/stencil formats in st_format_datatype()Brian Paul
Fixes llvmpipe regression from one of the prev commits.
2010-08-26mesa: fix mixed-up function call nameBrian Paul
2010-08-26mesa: Identify packed depth/stencil buffers using the Format field.Nick Bowler
Intel sometimes uses packed depth/stencil buffers even when only a depth buffer or only a stencil buffer was requested. Common code currently uses the _BaseFormat field to determine whether a depth/stencil wrapper is necessary. But unless the user explicitly requested a packed depth/stencil buffer, the _BaseFormat field does not encode this information, and the required wrappers are not created. The problem was introduced by commit 45e76d2665b38b ("mesa: remove a bunch of gl_renderbuffer fields"), which killed off the _ActualFormat field upon which the decision to create a wrapper used to be made. This patch changes the logic to use the Format field instead, which is more like the old code. Fixes fdo bug 27590. Signed-off-by: Nick Bowler <nbowler@draconx.ca> Signed-off-by: Brian Paul <brianp@vmware.com>
2010-08-26intel: Merge identical cases in switch statement.Nick Bowler
Signed-off-by: Nick Bowler <nbowler@draconx.ca> Signed-off-by: Brian Paul <brianp@vmware.com>
2010-08-26r600: fix vertex buffer size calculationAndre Maasikas
when we dont know max_index we cannot calculate vb size from count anymore - just use the bo size. Also added an assert to remind that we dont handle GL_INT GL_DOUBLE upload when we dont' know max_index - will fix later
2010-08-26st/mesa: Fix glEGLImageTargetTexture2DOES.Chia-I Wu
stObj->pt should be set in st_bind_surface, just as in st_TexImage. On the other hand, st_TexImage should unreference stObj->pt. It also needs to initialize the texture image again as _mesa_clear_texture_object clears the image.
2010-08-26st/mesa: Add support for surfaceless current contexts.Chia-I Wu
A surfaceless current context is a context that is made current without draw and read framebuffers. Such contexts can only render to FBOs.
2010-08-25mesa: Disable the debug spam for x86 CPU detection with a compile-time flag.Eric Anholt
I don't know of any problems with CPU detection in years. Don't spam the user that was just looking to enable assertions with this stuff.
2010-08-25mesa: Move the x86 detection debug messages next to the detection.Eric Anholt
2010-08-25mesa: Don't warn when the desired result of s3tc lib available occurs.Eric Anholt
2010-08-25r600: Remove unnecessary headers.Vinson Lee
2010-08-25r300: Remove unnecessary header.Vinson Lee
2010-08-25Revert "mesa: Don't add 1 to GL_ACTIVE_UNIFORM_MAX_LENGTH."Eric Anholt
This reverts commit 001a7bfdfc8b3c8930d5ced21982dbdfb8cd35b3. I hadn't found the section of the spec clarifying that the old behavior was right. Reverting fixes the new version of the testcase, and the Humus demos that could no longer find their uniforms. Bug #29782 Bug #29783
2010-08-25i965: Fix detection of implicit MOVs to message regs in brw_optimize.c.Eric Anholt
Texcoords in AmbientApertureLighting were getting trashed since the move of math arguments to implied moves, due to the logic for detecting ALU message reg writes overriding the logic for SEND implicit message reg writes.
2010-08-25mesa: Remove now-unused _mesa_add_sampler().Eric Anholt
We do the generation of "what sampler number within Parameters are we" right in ir_to_mesa.cpp, instead of repeatedly walking the existing list to find out.
2010-08-25ir_to_mesa: Add support for samplers in structures.Eric Anholt
Fixes: glsl-fs-uniform-sampler-struct glsl-fs-sampler-numbering-3 Bug #29690
2010-08-25mesa: Remove now-unused _mesa_add_uniform.Eric Anholt
We had to inline it to avoid doing a double-lookup in the process of adding assertion checks.
2010-08-25ir_to_mesa: Convert this code to using linker.cpp's uniform locations.Eric Anholt
Fixes: glsl-fs-uniform-array-4.
2010-08-25mesa: Remove the "Used" flag in gl_program_parameter.Eric Anholt
This was in place for uniform handling, but nothing actually needs the value now, since presence in a parameter list indicates that the uniform was used as far as the linker was concerned.
2010-08-25r300/compiler: emulate relative addressing with negative offsets in VSMarek Olšák
3 more piglits, cool.
2010-08-25st/mesa: Remove unnecessary header.Vinson Lee
2010-08-25glsl/mesa: fixes for MSVCAras Pranckevicius
Signed-off-by: Brian Paul <brianp@vmware.com>
2010-08-25intel: Support EGL_MESA_image_drmKristian Høgsberg
2010-08-25intel: Take an intel_screen pointer in intel_alloc_region_* functionsKristian Høgsberg
2010-08-25gallium: Use draw_set_index_buffer and others.Chia-I Wu
Update all drivers to use draw_set_index_buffer, draw_set_mapped_index_buffer, and draw_vbo. Remove draw_set_mapped_element_buffer and draw_set_mapped_element_buffer_range.
2010-08-25i965: Remove unnecessary header.Vinson Lee
2010-08-25r600: Include missing header in evergreen_fragprog.c.Vinson Lee
Include r600_emit.h for r600EmitShader and r600EmitShaderConsts symbols. Fixes the following GCC warnings. evergreen_fragprog.c: In function 'evergreenSetupFragmentProgram': evergreen_fragprog.c:521: warning: implicit declaration of function 'r600EmitShader' evergreen_fragprog.c:778: warning: implicit declaration of function 'r600EmitShaderConsts'
2010-08-25r600: Include missing header in evergreen_vertprog.c.Vinson Lee
Include r600_emit.h for r600EmitShader and r600EmitShaderConsts symbols. Fixes the following GCC warnings. evergreen_vertprog.c:614: warning: implicit declaration of function 'r600EmitShader' evergreen_vertprog.c:701: warning: implicit declaration of function 'r600EmitShaderConsts'
2010-08-24r300/compiler: Silence uninitialized variable warning.Vinson Lee
The variable loops would be used uninitialized if it ever processed a RC_OPCODE_ENDLOOP case first. This patch initalizes the loops variable to NULL and adds an assert at the RC_OPCODE_ENDLOOP case that loops isn't NULL. Silence the following GCC warning. r3xx_vertprog.c: In function 'translate_vertex_program': r3xx_vertprog.c:469: warning: 'loops' may be used uninitialized in this function
2010-08-24r300g: Add missing comma in SConscript.Vinson Lee
This is a follow-on patch to commit 574ba4b5f50bfe661427327cd792a8a200559376. Fixes r300g SCons build.
2010-08-24r600: Include missing header in evergreen_render.c.Vinson Lee
Fixes the following GCC warning. evergreen_render.c: In function 'evergreenTryDrawPrims': evergreen_render.c:836: error: implicit declaration of function 'evergreenSetupFragmentProgram'
2010-08-24r600: Remove unused variable.Vinson Lee
Silences the following GCC warning. evergreen_state.c: In function 'evergreenSetBlendState': evergreen_state.c:341: warning: unused variable 'id'
2010-08-24i965: Fix printf format warnings on 32-bit builds.Vinson Lee
2010-08-24r600: Remove unused variable.Vinson Lee
Fixes the following GCC warning. r600_emit.c In function 'r600AllocShaderConsts': r600_emit.c:59: warning: unused variable 'out'
2010-08-24r600: Remove spaces between backslash and newline.Vinson Lee
Fixes the following GCC warnings. r600_cmdbuf.h:201: warning: backslash and newline separated by space r600_cmdbuf.h:202: warning: backslash and newline separated by space
2010-08-25r300/compiler: implement elimination of unused constantsMarek Olšák
Wine likes to create a *lot* of constants, exceeding the size of the constant file in hw.
2010-08-25r300/compiler: terminate vertex shader compilation immediately after an errorMarek Olšák
Also rename "compiler" to "c".
2010-08-25r300/compiler: fail to compile if we hit hw limits or an unimplemented featureMarek Olšák
i.e. relative addressing (mainly FS), saturate modifiers, exceeding the maximum number of constants.
2010-08-25r300/compiler: handle indexable temporaries correctly in deadcode eliminationMarek Olšák
2010-08-25r300/compiler: disable register allocation for indexable temporaries in VSMarek Olšák
If there is relative addressing of temporaries, we cannot change register indices, so skip register allocation entirely. To utilize register allocation at least partially, we need separate indexable and non-indexable register files in both TGSI and Mesa IR.
2010-08-25ir_to_mesa: set IndirectRegisterFilesMarek Olšák
This fixes relative addressing of temporaries (and maybe others) in all gallium drivers. Acked on irc by Eric Anholt.