summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-02-02glsl: Fix constant-folding for reciprocal expressionsChad Versace
Do not constant-fold a reciprocal if any component of the reciprocated expression is 0. For example, do not constant-fold `1 / vec4(0, 1, 2, 3)`. Incorrect, previous behavior ---------------------------- Reciprocals were constant-folded even when some component of the reciprocated expression was 0. The incorrectly applied arithmetic was: 1 / 0 := 0 For example, 1 / vec4(0, 1, 2, 3) = vec4(0, 1, 1/2, 1/3) NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-02-02svga: Flush upload buffers or we get assertsJosé Fonseca
Based on work from Jakob Bornecrantz, Michel Dänzer, and Brian Paul.
2011-02-01glsl: Fix use of uninitialized values in _mesa_glsl_parse_state ctor.Kenneth Graunke
This has probably existed since e5e34ab18eeaffa465 or so. NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-02-01glsl: Fix invalid use of ralloc_asprintf in prototype_string.Kenneth Graunke
This was my mistake when converting from talloc to ralloc. I was confused because the other calls in the function are to asprintf_append and the original code used str as the context rather than NULL. Fixes bug #33823.
2011-02-02r600g: use burst exports in shadersChristian König
Join multiple exports into just one instruction instead of exporting each register separately.
2011-02-01r200: remove 0x4243 pci idAlex Deucher
There's no such device. 0x4243 is a pci bridge id, not a GPU. Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2011-02-01i915: Only mark a register as available if all components are writtenIan Romanick
Previously a register would be marked as available if any component was written. This caused shaders such as this: 0: TEX TEMP[0].xyz, INPUT[14].xyyy, texture[0], 2D; 1: MUL TEMP[1], UNIFORM[0], TEMP[0].xxxx; 2: MAD TEMP[2], UNIFORM[1], TEMP[0].yyyy, TEMP[1]; 3: MAD TEMP[1], UNIFORM[2], TEMP[0].zzzz, TEMP[2]; 4: ADD TEMP[0].xyz, TEMP[1].xyzx, UNIFORM[3].xyzx; 5: TEX TEMP[1].w, INPUT[14].xyyy, texture[0], 2D; 6: MOV TEMP[0].w, TEMP[1].wwww; 7: MOV OUTPUT[2], TEMP[0]; 8: END to produce incorrect code such as this: BEGIN DCL S[0] DCL T_TEX0 R[0] = MOV T_TEX0.xyyy U[0] = TEXLD S[0],R[0] R[0].xyz = MOV U[0] R[1] = MUL CONST[0], R[0].xxxx R[2] = MAD CONST[1], R[0].yyyy, R[1] R[1] = MAD CONST[2], R[0].zzzz, R[2] R[0].xyz = ADD R[1].xyzx, CONST[3].xyzx R[0] = MOV T_TEX0.xyyy U[0] = TEXLD S[0],R[0] R[1].w = MOV U[0] R[0].w = MOV R[1].wwww oC = MOV R[0] END Note that T_TEX0 is copied to R[0], but the xyz components of R[0] are still expected to hold a calculated value. Fixes piglit tests draw-elements-vs-inputs, fp-kill, and glsl-fs-color-matrix. It also fixes Meego bugzilla #13005. NOTE: This is a candidate for the 7.9 and 7.10 branches.
2011-02-01mesa: glGetUniform only returns a single element of an arrayIan Romanick
Also return it as the correct type. Previously the whole array would be returned and each element would be expanded to a vec4. Fixes piglit test getuniform-01 and bugzilla #29823.
2011-02-01glsl: Fix printf_length() on MSVC.José Fonseca
2011-02-01glsl: Fix memory error when creating the supported version string.Kenneth Graunke
Passing ralloc_vasprintf_append a 0-byte allocation doesn't work. If passed a non-NULL argument, ralloc calls strlen to find the end of the string. Since there's no terminating '\0', it runs off the end. Fixes a crash introduced in 14880a510a1a288df0778395097d5a52806abfb0.
2011-02-01r600g: just change tile type when buffer is set to depth.Dave Airlie
Not 100% sure on this one, but this is how it should work, the question is whether it will uncover other bugs elsewhere.
2011-02-01r600g: align the tiling modes with what the DDX and kernel expects.Dave Airlie
If we see a MACRO bit on r600g its 2D tiled, if don't see a MACRO bit and we do see a MICRO bit then its 1D tiled. Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-02-01r600g: fix evergreen for depth decompress testDave Airlie
2011-02-01r600: only decompress depth when its tile type is wrong.Dave Airlie
If the tile type for the buffer is 1 then its been bound to the DB at some point, we need to decompress it, otherwise its only been bound as texture/cb so don't do anything. This fixes 5 piglit tests here on r600g.
2011-01-31texture_builtins.py: Fix a warning about mixed tabs/spaces.Kenneth Graunke
2011-02-01r600g: start looking at evergreen tiling.Dave Airlie
this just adds the ioctl interface and sets the tile type and array mode in the correct place. This seems to bring eg 1D tiling to the same level, and issues as on r600. No idea how to address 2D yet.
2011-02-01r600g: Actually use the info from the flushed depth texture when creating a ↵Henri Verbeet
sampler view on a depth texture. R600/R700 was using incorrect tiling information from the (compressed) depth buffer. Evergreen worked anyway because tiling doesn't work.
2011-01-31glsl: Refresh autogenerated lexer and parser files.Ian Romanick
For the previous commit.
2011-01-31glsl: Reject shader versions not supported by the implementationIan Romanick
Previously we'd happily compile GLSL 1.30 shaders on any driver. We'd also happily compile GLSL 1.10 and 1.20 shaders in an ES2 context. This has been a long standing FINISHME in the compiler. NOTE: This is a candidate for the 7.9 and 7.10 branches
2011-01-31glsl: Ensure that all GLSL versions are supported in the stand-alone compilerIan Romanick
NOTE: This is a candidate for the 7.9 and 7.10 branches
2011-01-31glsl: Fix dependencies / linkage for glsl_compilerIan Romanick
2011-01-31mesa: Initial size for secondary color array is 3Ian Romanick
See table 6.7 on page 347 of the OpenGL 3.0 specification.
2011-01-31r600g: fix invalid ref count handling in r600_set_constant_bufferChristian König
Only decrement ref count if r600_upload_const_buffer really changes the buffer.
2011-01-31llvmpipe: fix incorrect array index in image dump codeBrian Paul
2011-01-31glsl: regerated filesBrian Paul
2011-01-31glsl: make _token_list_is_empty_ignoring_space() staticBrian Paul
To silence warning about missing prototype.
2011-01-31scons/glsl: add top-level 'include' dir to CPPPATHBrian Paul
To avoid using the /usr/include/GL/gl.h file which may be lacking some special #defines.
2011-01-31glsl: add cast to silence signed/unsigned comparison warningBrian Paul
2011-01-31glsl: Define va_copy on MSVC.José Fonseca
2011-01-31i965: Emit texel offsets in sampler messages.Kenneth Graunke
2011-01-31glsl/builtins: Uncomment prototypes for texture*Offset functions.Kenneth Graunke
2011-01-31texture_builtins.py: Generate texture*Offset functions.Kenneth Graunke
2011-01-31texture_builtins.py: Generalize the "use_proj" field to support offsets.Kenneth Graunke
Rather than passing "True", pass a bitfield describing the particular variant's features - either projection or offset. This should make the code a bit more readable ("Proj" instead of "True") and make it easier to support offsets in the future.
2011-01-31texture_builtins.py: Refactor coordinate dimension calculations.Kenneth Graunke
For offsets, we'll want the straight sampler dimensionality, without the +1 for array types. Create a new function to do that; refactor.
2011-01-31glsl: Introduce a new "const_in" variable mode.Kenneth Graunke
This annotation is for an "in" function parameter for which it is only legal to pass constant expressions. The only known example of this, currently, is the textureOffset functions. This should never be used for globals.
2011-01-31glsl: Change texel offsets to a single vector rvalue.Kenneth Graunke
Having these as actual integer values makes it difficult to implement the texture*Offset built-in functions, since the offset is actually a function parameter (which doesn't have a constant value). The original rationale was that some hardware needs these offset baked into the instruction opcode. However, at least i965 should be able to support non-constant offsets. Others should be able to rely on inlining and constant propagation.
2011-01-31glsl: Re-synchronize ir_variable_mode and the printer's string array.Kenneth Graunke
Since the introduction of ir_var_system_value, system variables would be printed as "temporary" and temporaries would result in out-of-bounds array access, showing up as garbage in printed IR.
2011-01-31scons: Gracefully handle pkg-config errors with libdrm_radeon.Vinson Lee
Print warnings and continue build.
2011-01-31Remove the talloc sources from the Mesa repository.Kenneth Graunke
2011-01-31Remove talloc from the SCons build system.Kenneth Graunke
2011-01-31Remove talloc from the make and automake build systems.Kenneth Graunke
2011-01-31ralloc: a new MIT-licensed recursive memory allocator.Kenneth Graunke
2011-01-31Convert everything from the talloc API to the ralloc API.Kenneth Graunke
2011-01-31ralloc: Add a fake implementation of ralloc based on talloc.Kenneth Graunke
2011-01-31glx: Properly check for a valid fd in dri2CreateScreen().Henri Verbeet
Signed-off-by: Brian Paul <brianp@vmware.com>
2011-01-31svga: Fix translation of TGSI SSG opcode.Michel Dänzer
SVGA3D only supports SGN for vertex shaders, and this requires two additional temporary registers for intermediate results. For fragment shaders, lower to two CMPs and one ADD.
2011-01-31svga: TEXLDL opcode dst/src register information is correct.Michel Dänzer
2011-01-31svga: Print the number and mnemonic of the opcode we're missing information for.Michel Dänzer
Makes it easier to figure out which opcode it's about.
2011-01-31glx: Fix leaks in DRISW screen creation error paths.Henri Verbeet
Signed-off-by: Brian Paul <brianp@vmware.com>
2011-01-31glx: Fix leaks in DRI screen creation error paths.Henri Verbeet
Signed-off-by: Brian Paul <brianp@vmware.com>