summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* r600g: rework dirty / depth texture tracking.Dave Airlie2011-02-035-12/+10
| | | | | | | | | | | this adds a flag to keep track of whether the depth texture structure is the flushed texture or not, so we can avoid doing flushes when we do a hw rendering from one to the other. it also renames flushed to dirty_db which tracks if the DB copy has been dirtied by being bound to the hw. Signed-off-by: Dave Airlie <[email protected]>
* r600g: set correct pitch/offset for depth textures in flushed state.Dave Airlie2011-02-031-0/+3
| | | | This fixes zreaddraw in tiling mode
* softpipe: rename sampler[] -> fragment_samplers[]Brian Paul2011-02-022-6/+6
|
* softpipe: rename fragment sampler/view fieldsBrian Paul2011-02-023-7/+7
| | | | To be consistant with vertex, geometry sampler fields.
* cso: refactor texture sampler and sampler view codeBrian Paul2011-02-021-326/+307
| | | | | | This consolidates the code duplicated between the fragment sampler and vertex sampler functions. Plus, it'll make adding support for geometry shader samplers trivial.
* cso: rename fragment sampler-related fieldsBrian Paul2011-02-021-21/+26
| | | | To better distinguish from vertex sampler fields.
* cso: fix loop bound in cso_set_vertex_samplers()Brian Paul2011-02-021-1/+1
| | | | | | | Before we were looping to nr_samplers, which is the number of fragment samplers, not vertex samplers. NOTE: This is a candidate for the 7.9 and 7.10 branches.
* glcpp: Raise error when modulus is zeroChad Versace2011-02-021-1/+6
| | | | | | | | | | For example, this now raises an error: #define XXX 1 / 0 Fixes bug: https://bugs.freedesktop.org//show_bug.cgi?id=33507 Fixes Piglit test: spec/glsl-1.10/preprocessor/modulus-by-zero.vert NOTE: This is a candidate for the 7.9 and 7.10 branches.
* glsl: Avoid division-by-zero during constant-foldingChad Versace2011-02-021-1/+19
| | | | | | | | | | | | | | | | | | | | | Avoid division-by-zero when constant-folding the following expression types: ir_unop_rsq ir_binop_div ir_binop_mod Fixes bugs: https://bugs.freedesktop.org//show_bug.cgi?id=33306 https://bugs.freedesktop.org//show_bug.cgi?id=33508 Fixes Piglit tests: glslparsertest/glsl2/div-by-zero-01.frag glslparsertest/glsl2/div-by-zero-02.frag glslparsertest/glsl2/div-by-zero-03.frag glslparsertest/glsl2/modulus-zero-01.frag glslparsertest/glsl2/modulus-zero-02.frag NOTE: This is a candidate for the 7.9 and 7.10 branches.
* glsl: Fix constant-folding for reciprocal expressionsChad Versace2011-02-021-6/+10
| | | | | | | | | | | | | | | 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.
* svga: Flush upload buffers or we get assertsJosé Fonseca2011-02-022-5/+7
| | | | Based on work from Jakob Bornecrantz, Michel Dänzer, and Brian Paul.
* glsl: Fix use of uninitialized values in _mesa_glsl_parse_state ctor.Kenneth Graunke2011-02-011-0/+2
| | | | | | This has probably existed since e5e34ab18eeaffa465 or so. NOTE: This is a candidate for the 7.9 and 7.10 branches.
* glsl: Fix invalid use of ralloc_asprintf in prototype_string.Kenneth Graunke2011-02-011-1/+1
| | | | | | | | 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.
* r600g: use burst exports in shadersChristian König2011-02-024-3/+40
| | | | | Join multiple exports into just one instruction instead of exporting each register separately.
* r200: remove 0x4243 pci idAlex Deucher2011-02-012-2/+0
| | | | | | | There's no such device. 0x4243 is a pci bridge id, not a GPU. Signed-off-by: Alex Deucher <[email protected]>
* i915: Only mark a register as available if all components are writtenIan Romanick2011-02-011-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* mesa: glGetUniform only returns a single element of an arrayIan Romanick2011-02-011-14/+41
| | | | | | | 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.
* glsl: Fix printf_length() on MSVC.José Fonseca2011-02-011-0/+8
|
* glsl: Fix memory error when creating the supported version string.Kenneth Graunke2011-02-011-1/+1
| | | | | | | | 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.
* r600g: just change tile type when buffer is set to depth.Dave Airlie2011-02-012-6/+2
| | | | | Not 100% sure on this one, but this is how it should work, the question is whether it will uncover other bugs elsewhere.
* r600g: align the tiling modes with what the DDX and kernel expects.Dave Airlie2011-02-011-4/+3
| | | | | | | 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 <[email protected]>
* r600g: fix evergreen for depth decompress testDave Airlie2011-02-011-1/+1
|
* r600: only decompress depth when its tile type is wrong.Dave Airlie2011-02-013-3/+7
| | | | | | | | 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.
* texture_builtins.py: Fix a warning about mixed tabs/spaces.Kenneth Graunke2011-01-311-1/+1
|
* r600g: start looking at evergreen tiling.Dave Airlie2011-02-013-20/+79
| | | | | | | | 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.
* r600g: Actually use the info from the flushed depth texture when creating a ↵Henri Verbeet2011-02-012-18/+11
| | | | | | | 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.
* glsl: Refresh autogenerated lexer and parser files.Ian Romanick2011-01-311-256/+271
| | | | For the previous commit.
* glsl: Reject shader versions not supported by the implementationIan Romanick2011-01-313-9/+82
| | | | | | | | 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
* glsl: Ensure that all GLSL versions are supported in the stand-alone compilerIan Romanick2011-01-311-0/+6
| | | | NOTE: This is a candidate for the 7.9 and 7.10 branches
* glsl: Fix dependencies / linkage for glsl_compilerIan Romanick2011-01-311-2/+2
|
* mesa: Initial size for secondary color array is 3Ian Romanick2011-01-311-1/+1
| | | | See table 6.7 on page 347 of the OpenGL 3.0 specification.
* r600g: fix invalid ref count handling in r600_set_constant_bufferChristian König2011-01-311-1/+1
| | | | | Only decrement ref count if r600_upload_const_buffer really changes the buffer.
* llvmpipe: fix incorrect array index in image dump codeBrian Paul2011-01-311-1/+1
|
* glsl: regerated filesBrian Paul2011-01-312-125/+118
|
* glsl: make _token_list_is_empty_ignoring_space() staticBrian Paul2011-01-311-1/+1
| | | | To silence warning about missing prototype.
* scons/glsl: add top-level 'include' dir to CPPPATHBrian Paul2011-01-311-0/+1
| | | | | To avoid using the /usr/include/GL/gl.h file which may be lacking some special #defines.
* glsl: add cast to silence signed/unsigned comparison warningBrian Paul2011-01-311-1/+1
|
* glsl: Define va_copy on MSVC.José Fonseca2011-01-311-0/+8
|
* i965: Emit texel offsets in sampler messages.Kenneth Graunke2011-01-312-4/+43
|
* glsl/builtins: Uncomment prototypes for texture*Offset functions.Kenneth Graunke2011-01-312-20/+0
|
* texture_builtins.py: Generate texture*Offset functions.Kenneth Graunke2011-01-311-5/+80
|
* texture_builtins.py: Generalize the "use_proj" field to support offsets.Kenneth Graunke2011-01-311-52/+57
| | | | | | | | 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.
* texture_builtins.py: Refactor coordinate dimension calculations.Kenneth Graunke2011-01-311-5/+9
| | | | | For offsets, we'll want the straight sampler dimensionality, without the +1 for array types. Create a new function to do that; refactor.
* glsl: Introduce a new "const_in" variable mode.Kenneth Graunke2011-01-3112-4/+36
| | | | | | | | 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.
* glsl: Change texel offsets to a single vector rvalue.Kenneth Graunke2011-01-318-29/+42
| | | | | | | | | | | 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.
* glsl: Re-synchronize ir_variable_mode and the printer's string array.Kenneth Graunke2011-01-311-1/+1
| | | | | | 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.
* scons: Gracefully handle pkg-config errors with libdrm_radeon.Vinson Lee2011-01-312-2/+12
| | | | Print warnings and continue build.
* Remove the talloc sources from the Mesa repository.Kenneth Graunke2011-01-316-3895/+0
|
* Remove talloc from the SCons build system.Kenneth Graunke2011-01-318-49/+2
|
* Remove talloc from the make and automake build systems.Kenneth Graunke2011-01-313-6/+4
|