summaryrefslogtreecommitdiff
path: root/src/mesa
AgeCommit message (Collapse)Author
2009-02-21mesa: use an array for current texture objectsBrian Paul
Use loops to consolidate lots of texture object code.
2009-02-21mesa: use an array for default texture objectsBrian Paul
Replace Default1D/2D/3D/Cube/etc with DefaultTex[TEXTURE_x_INDEX]. The same should be done with the Current1D/2D/3D/etc pointers...
2009-02-21mesa: re-org texgen stateBrian Paul
New gl_texgen struct allows quite a bit of code reduction.
2009-02-21intel: Fix intelSetTexBuffer miptree leak.Kristian Høgsberg
The intelImage also holds a reference to the miptree, so unref that as well.
2009-02-21intel: tell libdrm whether we want a cpu-ready or gpu-ready BO for regions.Eric Anholt
This lets us avoid allocing new buffers for renderbuffers, finalized miptrees, and PBO-uploaded textures when there's an unreferenced but still active one cached, while also avoiding CPU waits for batchbuffers and CPU-uploaded textures. The size of BOs allocated for a desktop running current GL cairogears on i915 is cut in half with this. Note that this means we require libdrm 2.4.5.
2009-02-21i965: Fix render target read domains.Eric Anholt
We were asking for something illegal (write_domain != 0 && read_domains != write_domain) because at the time of writing the region surfaces were used for texturing occasionally as well, and we weren't really clear on the model GEM was going to use. This reliably triggered a kernel bug with domain handling, resulting in oglconform mustpass.c failure. Of course, it only became visible after 01bc4d441fd6821ad9fc20d5e9544e4e587e4ff0 cleaned up some gratuitous flushing.
2009-02-20gallium: use the TGSI_TEXTURE_SHADOW1D/2D/RECT texture types for TEX ↵Brian Paul
instructions These texture types were defined but never put to use. For the time being though, the Mesa->TGSI translater isn't emitting these targets. See the XXX comment in map_texture_target().
2009-02-20i965: use the new prog_instruction::TexShadow fieldBrian Paul
GLSL shadow() sampler calls are properly propogated down to the driver now. The glean glsl1 shadow() tests work (except for the alpha channel).
2009-02-20i965: check depth_mode in translate_tex_format() for MESA_FORMAT_S8_Z24Brian Paul
Note that I24X8 vs. A24X8 vs. L24X8 doesn't seem to make any difference for texture/shadow compare, however.
2009-02-20glsl: use new IR opcodes for TEX instructions with shadow comparisonBrian Paul
Such TEX instructions will have the TexShadow flag set. The gl_program::ShadowSamplers field is now set in the linker. We missed that before.
2009-02-20mesa: add TexShadow field to prog_instructionBrian Paul
If the instruction is TEX/TXP/TXL/etc the TexShadow field will be true if the instruction is a texture fetch with shadow compare.
2009-02-20i965: separate emit_op() and emit_tex_op() functionsBrian Paul
2009-02-20mesa: freshen-up comments, move some fields in prog_instructionBrian Paul
2009-02-20i965: update comment, use const qualifierBrian Paul
2009-02-20i965: var renaming, clean-upBrian Paul
2009-02-20i965: added commentBrian Paul
2009-02-20intel: fix datatype typo, s/GLboolean/GLuint/Brian Paul
Fixes mysterious failures in glean glsl1 test.
2009-02-20i965: additional debug outputBrian Paul
2009-02-20glsl: rename GLSL texture assembly instructions to be more legibleBrian Paul
2009-02-20glsl: fix vec4_texp_rect IR code (need projective version)Brian Paul
2009-02-19mesa: support GL_EXT_stencil_two_side in gallium/mesa state trackerBrian Paul
Since Ian's patch of a few weeks ago, we can enable all three variations of two-sided stencil. Update the state tracker to handle the extra back- face state and turn on the EXT. Note: there's a new Glean test for two-sided stencil now...
2009-02-19mesa: fix/update/restore comments related to two-sided stencilBrian Paul
2009-02-19mesa: initialize ctx->Stencil._BackFace = 1Brian Paul
Back-face stencil operations didn't work correctly because this value was zero. It needs to be 1 or 2. The only place it's set otherwise is in glEnable/Disable(GL_STENCIL_TEST_TWO_SIDE_EXT).
2009-02-19mesa: Free the util shaders with the gallium's FREE.José Fonseca
2009-02-18mesa: convert VERT_RESULT_* from #defines to enum, like the othersBrian Paul
2009-02-18glsl: asst improvements, clean-ups in set_program_uniform()Brian Paul
Move the is_boolean/integer_type() calls out of the loops. Move the is_sampler_type() function near the bool/int functions. Add a bunch of comments.
2009-02-18glsl: fix inequality in set_program_uniform()Brian Paul
We were off by one when checking for too many uniform values.
2009-02-18glsl: fix link failure for variable-indexed varying output arraysBrian Paul
If the vertex shader writes to a varying array with a variable index, mark all the elements of that array as being written. For example, if the vertex shader does: for (i = 0; i < 4; i++) gl_TexCoord[i] = expr; Mark all texcoord outputs as being written, not just the first. Linking will fail if a fragment shader tries to read an input that's not written by the vertex shader. Before this fix, this linker test could fail.
2009-02-18swrast: Set vp_override flag during DrawPixelsNicolai Haehnle
Obviously, the color of fragments produced by DrawPixels is not constant, even if the current vertex array / vertex program state indicates that the color for normal rendering will be constant. Therefore, we need to override certain optimisations that have been added to texenvprogram.c Signed-off-by: Nicolai Haehnle <nhaehnle@gmail.com>
2009-02-18mesa: improved error msgBrian Paul
2009-02-18mesa: increase MAX_UNIFORMS to 1024 (of vec4 type)Brian Paul
Old limit was 256. Note that no arrays are declared to this size. The only place we have to be careful about raising this limit is the prog_src/dst_register Index bitfields. These have been bumped up too. Added assertions to check we don't exceed the bitfield in the future too.
2009-02-18glsl: fix a swizzle-related regressionBrian Paul
This new issue was exposed by commit 6eabfc27f19a10dfc2663e99f9560966ba1ff697
2009-02-18Merge branch 'gallium-texture-transfer'Michel Dänzer
Conflicts: src/gallium/drivers/softpipe/sp_tile_cache.c
2009-02-16gallium: fix mergeKeith Whitwell
It looks like I resolved the merge conflicts but did not save my emacs buffers before committing...
2009-02-16Merge branch 'master' into gallium-texture-transferKeith Whitwell
Conflicts: src/mesa/state_tracker/st_cb_accum.c src/mesa/state_tracker/st_cb_drawpixels.c
2009-02-16mesa: remove old commentsBrian Paul
Note: the default value for EmitCondCodes is FALSE. This means the GLSL compiler will emit code like this: SEQ TEMP[0].x, A, B; IF TEMP[0].x; ... ENDIF But if EmitCondCodes is TRUE, condition codes will be used instead: SEQ.C TEMP[0].x, A, B; IF (NE.xxxx); ... ENDIF
2009-02-16i965: tell GLSL compiler to emit code using condition codesBrian Paul
The default for EmitCondCodes got flipped when gallium-0.2 was merged. This fixes GLSL if/else/endif regressions. Drivers that use GLSL should always explicitly set the flag to be safe.
2009-02-16glsl: silence some uninit var warningsBrian Paul
2009-02-14r300: Redirect constant TEX coordinatesNicolai Haehnle
R3xx/R5xx fragment program texture constants must come from a hardware register instead of the constant file, so we redirect if necessary during the native rewrite phase. The symptoms of this bug started appearing when the Mesa fixed function texenvprogram code started using STATE_CURRENT_ATTRIB constants for texture coordinates when the corresponding attributes were constant across all vertices. Signed-off-by: Nicolai Haehnle <nhaehnle@gmail.com>
2009-02-13i965: rewrite the code for handling shader subroutine callsBrian Paul
Previously, the prog_instruction::Data field was used to map original Mesa instructions to brw instructions in order to resolve subroutine calls. This was a rather tangled mess. Plus it's an obstacle to implementing dynamic allocation/growing of the instruction buffer (it's still a fixed size). Mesa's GLSL compiler emits a label for each subroutine and CAL instruction. Now we use those labels to patch the subroutine calls after code generation has been done. We just keep a list of all CAL instructions that needs patching and a list of all subroutine labels. It's a simple matter to resolve them. This also consolidates some redundant post-emit code between brw_vs_emit.c and brw_wm_glsl.c and removes some loops that cleared the prog_instruction::Data fields at the end. Plus, a bunch of new comments.
2009-02-13i965: add missing break for OPCODE_RET caseBrian Paul
This doesn't effect correctness, but we were emitting an extraneous ADD.
2009-02-13i965: the return value of translate_insn() is never used. Make it void.Brian Paul
2009-02-13i965: minor clean-upsBrian Paul
2009-02-13i965: code clean-ups, comments, and minor refactoringBrian Paul
2009-02-13i965: updated commentsBrian Paul
2009-02-13intel: turn on GL_ARB_shading_language_120Brian Paul
It's done in the Mesa GLSL compiler. The only part of it that might matter in drivers is the centroid sampling option for MSAA.
2009-02-13i965: more reformatting/clean-upBrian Paul
2009-02-13i965: s/__inline/INLINE/Brian Paul
2009-02-13i965: formatting and indentation fixesBrian Paul
2009-02-13i965: fix inconsistant indentation in brw_wm.cBrian Paul