summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mesa: Expose GLSL interpolation qualifiers in gl_fragment_program.Paul Berry2011-10-278-33/+69
| | | | | | | | | | | | | | | | | This patch makes GLSL interpolation qualifiers visible to drivers via the array InterpQualifier[] in gl_fragment_program, so that they can easily be used by driver back-ends to select the correct interpolation mode. Previous to this patch, the GLSL compiler was using the enum ir_variable_interpolation to represent interpolation types. Rather than make a duplicate enum in core mesa to represent the same thing, I moved the enum into mtypes.h and renamed it to be more consistent with the other enums defined there. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* docs: update GL3 statusMarek Olšák2011-10-271-5/+4
| | | | | | EXT_texture_array has been completed for quite a while. Removing BindBufferBase+Range, because they're part of EXT_transform_feedback.
* r600g: remove redundant variable r600_pipe_context::blitMarek Olšák2011-10-273-4/+2
|
* mesa: initialize ARB_transform_feedback2 dispatchMarek Olšák2011-10-272-1/+10
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: improve EXT_transform_feedback display list supportMarek Olšák2011-10-271-10/+9
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: fix GL error checking in TransformFeedbackVaryingsMarek Olšák2011-10-271-1/+3
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* st/glx: fix mixed declarations and code, remove unused varBrian Paul2011-10-261-7/+7
|
* st/mesa: tell VBO module to always unmap buffers before drawingBrian Paul2011-10-261-0/+4
| | | | | | Without this it's possible to wind up in a draw call with the glBegin/End VBO still in a mapped state. This is a problem for the SVGA3D driver and probably not good for other HW drivers.
* glsl: Rename remaining internal builtins from gl_MESA* to gl_*MESA.Eric Anholt2011-10-263-12/+12
| | | | | | This matches the usual convention for extension builtin variables. Reviewed-by: Kenneth Graunke <[email protected]>
* intel: Drop texture border support code.Eric Anholt2011-10-265-93/+29
| | | | | | | | | | Now that texture borders are gone, we never need to allocate our textures through non-miptrees, which simplifies some irritating paths. v2: Remove the !mt support case from intel_map_texture_image() Reviewed-by: Kenneth Graunke <[email protected]> (v1) Reviewed-by: Brian Paul <[email protected]>
* intel: Enable stripping of texture borders.Eric Anholt2011-10-261-0/+2
| | | | | | | | | | | | | | | | | | | This replaces software rendering of textures with the deprecated 1-pixel border (which is always bad, since mipmapping is rather broken in swrast, and GLSL 1.30 is unsupported) with hardware rendering that just pretends there was never a border (so you have potential seams on apps that actually intentionally used the 1-pixel borders, but correct rendering otherwise). This doesn't regress any piglit tests on gen6 (since the texwrap border/bordercolor cases already failed due to broken border color handling), but regresses texwrap border cases on original gen4 since those end up sampling the border color instead of the border pixels. It's a small price to pay for not thinking about texture borders any more. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Apply StripTextureBorder to CopyTexImage as well.Eric Anholt2011-10-261-0/+10
| | | | Reviewed-by: Brian Paul <[email protected]>
* mesa: Fold gallium's texture border stripping into a core Mesa option.Eric Anholt2011-10-264-58/+73
| | | | | | | | | We wanted to reuse this in the Intel driver. v2: Move the flag to ctx->Const Reviewed-by: Kenneth Graunke <[email protected]> (v1) Reviewed-by: Brian Paul <[email protected]>
* mesa: Skip texstore for 0-sized texture data.Eric Anholt2011-10-261-0/+9
| | | | | | | | | | | The intel driver (and gallium, it looks like, though it doesn't use these texstore functions at this point) doesn't bother making storage for textures with 0 width, height, or depth. This avoids them having to deal with returning a mapping for that nonexistent data. Fixes assertion failures with an upcoming intel driver change. Reviewed-by: Brian Paul <[email protected]>
* r600g: remove redundant assignment of pipe_draw_info in draw_vboMarek Olšák2011-10-261-2/+0
|
* llvmpipe: llvmpipe doesn't support pure integers yet.Dave Airlie2011-10-262-0/+8
| | | | | | Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=42240 Signed-off-by: Dave Airlie <[email protected]>
* r600g: cleanup draw_vbo and add commentsMarek Olšák2011-10-264-93/+71
|
* ralloc: Move declaration before code.Vinson Lee2011-10-251-1/+2
| | | | Fixes build error with MSVC.
* scons: Add link_uniforms.cpp to SConscript.Vinson Lee2011-10-251-0/+1
|
* ir_to_mesa: Use uniform_field_visitor to add all struct fields to parameter listIan Romanick2011-10-251-12/+38
| | | | | | | | | | | | | | Previously the uniform was passed as single, whole structure to _mesa_add_parameter. This was completely bogus and resulted in a DataType of 0 (instead of a valid GLSL type enum). Signed-off-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41980 Tested-by: Brian Paul <[email protected]> Cc: Bryan Cain <[email protected]> Cc: Vinson Lee <[email protected]> Cc: José Fonseca <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* linker: Add uniform_field_visitor class to process leaf fields of a uniformIan Romanick2011-10-253-0/+129
| | | | | Signed-off-by: Ian Romanick <[email protected]> Signed-off-by: Kenneth Graunke <[email protected]>
* ralloc: Add new [v]asprintf_rewrite_tail functions.Kenneth Graunke2011-10-252-4/+80
| | | | | | | | | | | | | | | | | | This can be useful if you want to create a bunch of temporary strings with a common prefix. For example, when iterating over uniform structure fields, one might want to create temporary strings like "pallete.primary", "palette.outline", and "pallette.shadow". This could be done by overwriting the '.' with a null-byte and calling ralloc_asprintf_append, but that incurs the cost of strlen("pallete") every time...when this is already known. These new functions allow you rewrite the tail of the string, given a starting index. If the starting index is the length of the string, this is equivalent to appending. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* linker: Eliminate more dead code after demoting shader inputs and outputsIan Romanick2011-10-251-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consider the following vertex shader and fragment shader: // vertex shader varying vec4 v; uniform vec4 u; void main() { gl_Position = vec4(0.0); v = u; } // fragment shader void main() { gl_FragColor = vec4(0.0); } Since the fragment shader does not use 'v', it is demoted from a varying to a simple global variable. Once that happens, the assignment to 'v' is useless, and it should be removed. In addition, 'u' is no longer active, and it should also be removed. Performing extra dead code elimination after demoting shader inputs and outputs takes care of this. This elimination must occur before assigning uniform locations, or the declaration of 'u' cannot be removed. This change *breaks* the piglit test getuniform-01, but that test is already incorrect. The test uses a vertex shader that assigns to a user-defined varying, but it has no fragment shader. Since Mesa does not support ARB_separate_shader_objects (we only support the EXT version), the linker correctly eliminates the user-defined varying. The cascading effect is that the uniform queried by the C code of the test is also (correctly) eliminated. Signed-off-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41980 Tested-by: Brian Paul <[email protected]> Cc: Bryan Cain <[email protected]> Cc: Vinson Lee <[email protected]> Cc: José Fonseca <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Yuanhan Liu <[email protected]>
* glsl: Add uniform_locations_assigned parameter to do_dead_code opt passIan Romanick2011-10-2510-17/+49
| | | | | | | | | | | | | | | | | Setting this flag prevents declarations of uniforms from being removed from the IR. Since the IR is directly used by several API functions that query uniforms in shaders, uniform declarations cannot be removed after the locations have been set. However, it should still be safe to reorder the declarations (this is not tested). Signed-off-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41980 Tested-by: Brian Paul <[email protected]> Reviewed-by: Bryan Cain <[email protected]> Cc: Vinson Lee <[email protected]> Cc: José Fonseca <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Yuanhan Liu <[email protected]>
* i965: Add more #defines for Gen6+ 3DSTATE_GS fields.Kenneth Graunke2011-10-251-0/+8
| | | | | | | These should be useful for doing transform feedback on Sandybridge. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Add new brw_context::max_gs_threads constant.Kenneth Graunke2011-10-252-0/+8
| | | | | | | | These are correct to the best of my knowledge, gleaned from a variety of internal sources. Sadly, the Sandybridge PRM has incorrect limits. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Rename (vs|wm)_max_threads to max_(vs|wm)_threads for consistency.Kenneth Graunke2011-10-2510-24/+29
| | | | | | | | | The inconsistency between vs_max_threads and max_vs_entries was rather annoying. I could never seem to remember which one was reversed, which made it harder to find quickly. "Max __ Threads" seems more natural. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Remove "single threaded" INTEL_DEBUG mode.Kenneth Graunke2011-10-255-18/+4
| | | | | | | | | | | | | | | | | According to the docs for 3DSTATE_PS (Gen7+) and 3DSTATE_WM (Gen6), there is a platform dependent value for the minimum number of pixel shader threads. It may also vary based on whether WIZ Hashing is on. For example, Ivybridge requires at least 4 threads if WIZ hashing is disabled, and 8 if it's enabled. Programming it to use less threads is illegal. Sandybridge appears to have similar restrictions. So on newer platforms, INTEL_DEBUG=sing will probably just hang the GPU. Rather than try to patch it up for newer platforms and extend it to support geometry shaders, just remove it as it isn't that useful anyway. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: Remove unnecessary and incorrect TexEnv parameter validation.Kenneth Graunke2011-10-251-6/+0
| | | | | | | | | | | | | | | | | For GL_RGB_SCALE and GL_ALPHA_SCALE targets, the API wrapper code attempts to ensure the parameter is 1.0, 2.0, or 4.0. This is unnecessary: set_combiner_scale in texenv.c (called by _mesa_TexEnvfv) already checks this and raises an appropriate error. It's also incorrect: For glTexEnvx, the API validation code directly compares the GLfixed input parameter with a floating point constant, prior to converting fixed-point to floating point. Fixes an issue in the OpenGL ES 1.1 conformance suite. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* st/glx: Implement texture_from_pixmap without DRI.Stéphane Marchesin2011-10-253-9/+136
| | | | Makes texture_from_pixmap work with non-DRI llvmpipe.
* i915g: Cleanup the vertex sampler interface a bit.Stéphane Marchesin2011-10-253-9/+5
|
* i915g: Flesh out TODO idea.Stéphane Marchesin2011-10-251-1/+3
|
* intel: Kill dead code in intel_miptree_copy_teximage()Chad Versace2011-10-251-59/+28
| | | | | | | | | | | | | Kill the code paths taken when src_mt is null. It is never null, otherwise there would be a segfault on line 4 of this function: GLuint width = src_mt->level[level].width; (Some interleaved lines in the diff make the real diff non-obvious. All I did was delete some code and then left-shifted what remained to correct the indentation.) Reviewed-by: Eric Anholt <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* tgsi: Fix memory leak in out-of-memory path.Vinson Lee2011-10-251-7/+10
| | | | | | Fixes Coverity resource leak defect. Reviewed-by: Brian Paul <[email protected]>
* swrast: Fix memory leak in out-of-memory path.Vinson Lee2011-10-251-0/+1
| | | | | | Fixes Coverity resource leak defect. Reviewed-by: Brian Paul <[email protected]>
* swrast: use _mesa_ffs() instead of ffs()Brian Paul2011-10-251-2/+2
| | | | Fixes MSVC build.
* r600g: move some code out of draw_vbo into new r600_update_derived_stateMarek Olšák2011-10-251-20/+31
|
* r600g: cleanup some magic numbersMarek Olšák2011-10-252-4/+16
|
* r600g: don't render if pipe_draw_info::count is 0Marek Olšák2011-10-251-6/+8
| | | | Also call r600_conv_pipe_prim earlier.
* mesa: fix comment languageBrian Paul2011-10-251-2/+2
|
* pp: Fix memory leak on error path.Vinson Lee2011-10-251-1/+2
| | | | | | Fixes Coverity resource leak defect. Reviewed-by: José Fonseca <[email protected]>
* r600g: set correct tiling flags in depth infoMarek Olšák2011-10-252-9/+13
| | | | | The kernel currently overwrites the flags, but if we stopped doing that, this would break badly.
* apple: Implement applegl_unbind_contextJeremy Huddleston2011-10-241-0/+18
| | | | | | | | | glXMakeCurrent(dpy, None, NULL) would not correctly unbind the context causing subsequent GLX requests to fail in peculiar ways http://xquartz.macosforge.org/trac/ticket/514 Signed-off-by: Jeremy Huddleston <[email protected]>
* util: handle failed mapping in u_upload_alloc()Brian Paul2011-10-241-0/+5
| | | | Reviewed-by: José Fonseca <[email protected]>
* util: handle failed mapping in u_upload_alloc_buffer()Brian Paul2011-10-241-1/+6
| | | | Reviewed-by: José Fonseca <[email protected]>
* mesa: Fix memory leak in out-of-memory path.Vinson Lee2011-10-241-0/+1
| | | | | | Fixes Coverity resource leak defect. Reviewed-by: Brian Paul <[email protected]>
* glsl: Fix gl_NormalMatrix swizzle setup to match i965's invariants.Eric Anholt2011-10-241-3/+3
| | | | | | | | | | | | | | | | | | | | A driver trying to set up builtin uniforms is faced with a problem: How do I walk the ir_variable structure (representing an array of structs, or array of matrices, or struct, or whatever), and set up driver structures so that dereference of that uniform gets the corresponding ParameterValues[] entry. The rule in general is that each corresponding vector-sized field of an array of structs is one builtin uniform state slot. i965 relied on another invariant: each state slot has a number of unique channel swizzles corresponding to the number of elements in the field's vector, to avoid needing to walk the glsl_type in parallel to get at vector_elements. All of the builtin uniforms followed this behavior, except for gl_NormalMatrix. That's a mat3 (so 3 vec3s), but it was swizzled as 3 vec4s. Fixes piglit glsl-fs-normalmatrix. Reviewed-by: Paul Berry <[email protected]>
* glsl: Add gl_MaxVaryingComponents in GLSL 1.30.Eric Anholt2011-10-241-0/+2
| | | | | | | | | This is the new name for gl_MaxVaryingFloats now that non-float varyings exist. Fixes piglit glsl-1.30/execution/maximums/gl_MaxVaryingFloats Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* i965: Apply post-sync non-zero workaround to homebrew workaround.Kenneth Graunke2011-10-241-0/+2
| | | | | | | | | | | | | | | | | | In commit 3e5d3626, Eric added a homebrew workaround to fix GPU hangs in the Mesa "engine" demo and oglc's api-texcoord test. Unfortunately, his PIPE_CONTROL contains a Depth Stall, which necessitates the post-sync non-zero workaround, Fixes GPU hangs in Civilization 4, PlaneShift, and 3DMMES. Hopefully Heroes of Newerth as well, though I haven't tested that. NOTE: This is candidate for the 7.11 branch. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40324 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41096 Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-and-tested-by: Eric Anholt <[email protected]>
* docs: update relnotes-7.12Marek Olšák2011-10-241-1/+1
|