summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* r300g: expose ARB_ES2_compatibility by claiming FIXED format supportMarek Olšák2011-10-242-2/+8
|
* nv50: fix max texture levelsAdel Gadllah2011-10-241-3/+3
| | | | | MAX_TEXTURE_2D_LEVELS and MAX_TEXTURE_CUBE_LEVELS are supposed to be 14 not 13, while MAX_TEXTURE_3D_LEVELS should be 12 not 10.
* winsys/radeon: don't use the new GEM_WAIT ioctl for nowMarek Olšák2011-10-241-4/+6
|
* Only use gcc visibility support with gcc4+.Tom Fogal2011-10-242-2/+2
| | | | | | | | | I had a colleague hitting issues compiling with an old gcc3.2 system. These patches got them through. NOTE: This is a candidate for the 7.11 branch. Reviewed-by: Brian Paul <[email protected]>
* winsys/radeon: restore the old r600g winsys memory characteristics.Mathias Fröhlich2011-10-241-0/+5
| | | | | | | | | Use VRAM for static and immutable buffers. This restores the recently removed r600g winsys behaviour for memory locations. This also improoves rendering times on the gpu for some OpenSceneGraph based test cases by about 15%. Signed-off-by: Marek Olšák <[email protected]>
* util: remove gotos in u_upload_mgr.cBrian Paul2011-10-241-16/+8
| | | | | | | We can trivially remove the gotos in two places in this code and make it a bit more readable. Reviewed-by: José Fonseca <[email protected]>
* mesa: Avoid ABA problem on buffer object bind.Mathias Fröhlich2011-10-242-1/+13
| | | | | | | | | | | | | | Make sure we do not run into the classic ABA problem on buffer object bind, reusing this name and may be never rebind since we get an new name that was just deleted and never rebound in between. The explicit rebinding to the debault object in the current context prevents the above in the current context, but another context sharing the same objects might suffer from this problem. Minor var renaming and comments edited by Brian. Signed-off-by: Mathias Fröhlich <[email protected]> Signed-off-by: Brian Paul <[email protected]>
* swrast: fix comment typo (s/texure/texture/)Brian Paul2011-10-231-1/+1
|
* mesa: remove dead code from teximage.cBrian Paul2011-10-231-29/+0
|
* mesa: Fix multithreaded buffer object refcounting.Mathias Fröhlich2011-10-231-72/+151
| | | | | | | | | | Buffer objects may be shared across contexts. Rework the array attrib push/pop implementation to be thread safe. Make use of more library functions for this purpose. Signed-off-by: Mathias Fröhlich <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* r300g: don't call u_trim_pipe_prim in r300_swtcl_draw_vboMarek Olšák2011-10-231-5/+0
| | | | This was dead code anyway.
* u_blitter: accept overriden width0 and height0Marek Olšák2011-10-232-79/+57
| | | | We'll use this soon.
* u_blitter: add a copy_texture function which uses views and not resourcesMarek Olšák2011-10-232-115/+117
| | | | | The views (sampler views and surfaces) are great tools for changing resource properties without having to change pipe_resource.
* intel: remove duplicated #include of texstore.hBrian Paul2011-10-231-1/+0
|
* radeon: remove unnecessary #includes of texstore.hBrian Paul2011-10-234-4/+0
|
* configs: add vmgfx-related dirs to configs/linux-driBrian Paul2011-10-231-3/+3
|
* swrast: update renderbuffer format assertionBrian Paul2011-10-231-1/+4
| | | | Failed when exercising i965 swrast fallback rendering.
* mesa: add swrast_texture_image::BufferBrian Paul2011-10-238-36/+225
| | | | | | | | | | | | | | | In the past, swrast_texture_image::Data has been overloaded. It could either point to malloc'd memory storing texture data, or it could point to a current mapping of GPU memory. Now, Buffer always points to malloc'd memory (if we're not using GPU memory) and Data always points to mapped memory. The next step would be to rename Data -> Map. This change also involves adding swrast functions for mapping textures and renderbuffers prior to rendering to setup the Data pointer. Plus, corresponding functions to unmap texures and renderbuffers. This is very much like similar code in the dri drivers.
* mesa: remove _mesa_alloc_texmemory(), _mesa_free_texmemory()Brian Paul2011-10-237-64/+9
| | | | Core Mesa no longer does any texture memory allocation.
* mesa: move gl_texture_image::Data, RowStride, ImageOffsets to swrastBrian Paul2011-10-2327-177/+206
| | | | | | Only swrast and the drivers that fall back to swrast need these fields now. This removes the last of the fields related to software rendering from gl_texture_image.
* llvmpipe: point out that there's two stencil writemasksBrian Paul2011-10-231-3/+4
| | | | | | | In lp_build_stencil_op() the incoming 'stencil' var is a 2-element array. There's a front-face writemask and a back-face writemask but we're ignoring the later. This patch doesn't fix anything but at least points out the problem.