summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mesa: Bump version to 9.3.0-devel.Kenneth Graunke2013-07-253-3/+3
| | | | This should have been done when making the 9.2 branch, but was missed.
* docs: Remove <em> obfuscation on public mailing list addresses.Kenneth Graunke2013-07-251-3/+3
| | | | | | | | | | | | | | Wrapping every character of an email address in <em> looks bizarre, and makes it impossible to read the text. Apparently Brian did this in 2003 to try and obfuscate email addresses and avoid spam. Of course, mesa-*@lists.freedesktop.org are public mailing lists and trivial to find on the internet. So obfuscation buys us nothing (assuming the <em> technique even works at all, which I doubt). Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Brian Paul <[email protected]> LOLed-at-by: Matt Turner :)
* xa: bump major versionRob Clark2013-07-251-1/+1
| | | | | | | Bump major version, as the change to require explicit xa_context_flush(), the addition of the handle-type parameter to xa_surface_handle(), and change of surface to ref/unref will require a minor change in DDX.
* xa: move surface to ref/unref apiJerome Glisse2013-07-253-2/+18
| | | | | | | This make ddx life easier. Signed-off-by: Jerome Glisse <[email protected]> Signed-off-by: Rob Clark <[email protected]>
* xa: let ddx handle flushJerome Glisse2013-07-252-9/+2
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* xa: export a common context flush functionJerome Glisse2013-07-254-7/+17
| | | | | | First step before moving flushing inside the ddx. Signed-off-by: Jerome Glisse <[email protected]>
* xa: add handle type parameter to get handleJerome Glisse2013-07-252-2/+18
| | | | | | Allow to retrieve non shared handle. Signed-off-by: Jerome Glisse <[email protected]>
* xa: add xa_surface_from_handle()Rob Clark2013-07-252-4/+46
| | | | | | | | | | | For freedreno DDX, we have to create the scanout GEM bo in a special way (until we have our own KMS/DRM kernel driver.. and even then for phones/tablets you probably need to use the android drivers if you don't want to port the lcd panel driver support). The easiest way to handle this is let the DDX create the scanout bo, and then create the xa surface from that. Signed-off-by: Rob Clark <[email protected]>
* gallivm: Remove NoFramePointerElimNonLeaf for LLVM >= 3.4.Vinson Lee2013-07-251-0/+2
| | | | | | | | TargetOptions::NoFramePointerElimNonLeaf was removed in LLVM 3.4 r187093. Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* glsl: Handle empty if statement encountered during loop analysis.Paul Berry2013-07-251-1/+2
| | | | | | | | | | | | | | | | | | | | | The is_loop_terminator() function was asserting that the following kind of if statement could never occur: if (...) { } else { } (presumably based on the assumption that such an if statement would be eliminated by previous optimization stages). But that isn't the case--it's possible that previous optimization stages might simplify more complex code down to this empty if statement, in which case it won't be eliminated until the next time through the optimization loop. So is_loop_terminator() needs to handle it. Fortunately it's easy to handle--it's not a loop terminator because it does nothing. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64330 CC: [email protected] Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Initialize inout_offset parameter to brw_search_cache().Paul Berry2013-07-252-2/+2
| | | | | | | | | | | | | | | | | | | | | | Two callers of brw_search_cache() weren't initializing that function's inout_offset parameter: brw_blorp_const_color_params::get_wm_prog() and brw_blorp_const_color_params::get_wm_prog(). That's a benign problem, since the only effect of not initializing inout_offset prior to calling brw_search_cache() is that the bit corresponding to cache_id in brw->state.dirty.cache may not be set reliably. This is ok, since the cache_id's used by brw_blorp_const_color_params::get_wm_prog() and brw_blorp_blit_params::get_wm_prog() (BRW_BLORP_CONST_COLOR_PROG and BRW_BLORP_BLIT_PROG, respectively) correspond to dirty bits that are not used. However, failing to initialize this parameter causes valgrind to complain. So let's go ahead and fix it to reduce valgrind noise. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66779 Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: don't rename variables in interface block arrays.Paul Berry2013-07-251-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | The linker matches up variables in interface blocks according to their block name and variable name. When support for interface block arrays was added in commit d6863acb, we renamed variables appearing in interface blocks so that their name included the array size. For example, in a block like this: out foo { float bar } baz[3]; The variable "bar" would get renamed to "bar[3]". This is unnecessary, and leads to problems in supporting geometry shaders, since geometry shaders require vertex shader outputs which are non-arrays to be linked up to geometry shader inputs which are arrays. This patch makes the behaviour of interface block arrays the same as simple non-array interface blocks; in both cases, the variables contained within them are not renamed. Reviewed-by: Matt Turner <[email protected]>
* draw: fix vertex id computationZack Rusin2013-07-255-13/+37
| | | | | | | | | | | | | vertex id has to be unaffected by the start index (i.e. when calling draw arrays with start_index = 5, the first vertex_id has to still be 0, not 5) and it has to be equal to the index when performing indexed rendering (in which case it has to be unaffected by the index bias). This fixes our behavior. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* draw: cleanup and fix instance id computationZack Rusin2013-07-254-13/+8
| | | | | | | | | | | | | | The instance id system value always starts at 0, even if the specified start instance is larger than 0. Instead of implicitly setting instance id to instance id plus start instance and then having to subtract instance id when computing the buffer offsets lets just set instance id to the proper instance id. This fixes instance id computation and cleansup buffer offset computation. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* gallivm: Remove dead code in lp_build_compare_ext.Vinson Lee2013-07-241-6/+0
| | | | | | | | | | There are earlier returns for PIPE_FUNC_NEVER and PIPE_FUNC_ALWAYS. The switch value of 'func' cannot be either of those values. Fixes "Logically dead code" defects reported by Coverity. Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* mesa: implement mipmap generation for compressed 2D array texturesBrian Paul2013-07-241-16/+43
| | | | | | | | | | | | We weren't looping over all the slices in the array. The updated code should also correctly handle 3D compressed textures too, whenever we have that feature. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66850 NOTE: This is a candidate for the 9.x branches Cc: [email protected] Reviewed-by: José Fonseca <[email protected]>
* meta: handle 2D texture arrays in decompress_texture_image()Brian Paul2013-07-241-2/+21
| | | | | | | | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66850 NOTE: This is a candidate for the 9.x branches. Cc: [email protected] Reviewed-by: José Fonseca <[email protected]>
* mesa: handle 2D texture arrays in get_tex_rgba_compressed()Brian Paul2013-07-241-28/+24
| | | | | | | | | | | If we call glGetTexImage() for a compressed 2D texture array we need to loop over all the slices. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66850 NOTE: This is a candidate for the 9.x branches. Cc: [email protected] Reviewed-by: José Fonseca <[email protected]>
* nv50,nvc0: s/uint16/uint32 for constant buffer offsetChristoph Bumiller2013-07-242-2/+2
| | | | | | | | Looks like a thinko, "Hey, constant buffers can be at most 64 KiB in size, offset can't be larger." But it can, of course. I think piglit lacks a test for UBO and BindBufferRange that tests if it actually works.
* draw: always call util_cpu_detect() in draw context creation.Roland Scheidegger2013-07-241-1/+4
| | | | | | | | | | | | | | | | | | | | Since disabling denorms in draw_vbo() we require the util_cpu_caps to be initialized there. Hence add another util_cpu_detect() call in draw_create_context() which should ensure this. (There is another call in draw_get_option_use_llvm() which only gets called with x86 (not x86_64) but calling it always there wouldn't help since it most likely wouldn't get called when compiling without llvm, so leave it alone there.) This fixes https://bugs.freedesktop.org/show_bug.cgi?id=66806. (Because util_cpu_caps wasn't initialized when first calling util_fpstate_get() hence it returning zero, but it would later get initialized by rtasm translate code hence when draw call returned it unmasked all exceptions by calling util_fpstate_set(). This was happening only with DRAW_USE_LLVM=0 or not compiling with llvm, otherwise the llvm init code was calling it on time too.) Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Zack Rusin <[email protected]> Tested-by: Vinson Lee <[email protected]>
* mesa: fix rgtc snorm decodingRoland Scheidegger2013-07-241-3/+3
| | | | | | | | | The codeword must be unsigned (otherwise will shift in 1's from above when merging low/high parts so some texels decode wrong). This also affects gallium's util/u_format_rgtc. Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Zack Rusin <[email protected]>
* gallium/util: Fix detection of AVX cpu capsAndre Heider2013-07-231-2/+25
| | | | | | | | | | | | | | | | | For AVX it's not sufficient to only rely on the cpuid flags. If the CPU supports these extensions, but the OS doesn't, issuing these insns will trigger an undefined opcode exception. In addition to the AVX cpuid bit we also need to: * test cpuid for OSXSAVE support * XGETBV to check if the OS saves/restores AVX regs on context switches See "Detecting Availability and Support" at http://software.intel.com/en-us/articles/introduction-to-intel-advanced-vector-extensions Signed-off-by: Andre Heider <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* docs: Add items for GL4.4Chris Forbes2013-07-231-0/+14
| | | | | Signed-off-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* clover: Respect kernel argument alignment restrictions.Francisco Jerez2013-07-222-2/+19
| | | | | Cc: [email protected] Reviewed-by: Tom Stellard <[email protected]>
* clover: Extend kernel arguments for differing host and device data types.Francisco Jerez2013-07-222-4/+56
| | | | | | | Loosely based on a similar patch by Tom Stellard. Cc: [email protected] Reviewed-by: Tom Stellard <[email protected]>
* clover: Byte-swap kernel arguments when host and device endianness differ.Francisco Jerez2013-07-221-37/+65
| | | | | Cc: [email protected] Reviewed-by: Tom Stellard <[email protected]>
* clover: Add kernel argument fields to allow differing host/target data types.Francisco Jerez2013-07-221-2/+23
| | | | | | | Loosely based on a similar patch by Tom Stellard. Cc: [email protected] Reviewed-by: Tom Stellard <[email protected]>
* clover: Pass corresponding module::argument to kernel::argument::bind().Francisco Jerez2013-07-222-84/+61
| | | | | | | | And remove size information from most kernel::argument derived classes, it's no longer going to be necessary. Cc: [email protected] Reviewed-by: Tom Stellard <[email protected]>
* clover: Return correct value for CL_DEVICE_ENDIAN_LITTLETom Stellard2013-07-223-1/+8
| | | | | | | | Query the driver using PIPE_CAP_ENDIANNESS rather than always returning true. Cc: [email protected] Reviewed-by: Francisco Jerez <[email protected]>
* gallium: Add PIPE_CAP_ENDIANNESSTom Stellard2013-07-2214-1/+38
| | | | | | Cc: [email protected] [ Francisco Jerez: Fix "PIPE_ENDIAN_SMALL" in the documentation, define PIPE_ENDIAN_NATIVE. ]
* configure.ac: Use correct options names in AC_ARG_ENABLE.Matt Turner2013-07-221-4/+4
|
* egl/build: Remove unused GLAPI_LIB.Matt Turner2013-07-221-2/+0
|
* build: Remove unused EGL_PLATFORMS.Matt Turner2013-07-222-7/+1
|
* build: Add tests directories to SUBDIRSMatt Turner2013-07-224-7/+5
| | | | Fixes a problem with distcheck.
* llvmpipe: Ensure FTZ/DAZ flags are set on deferred draw flushes.Zack Rusin2013-07-221-0/+8
| | | | Tested-by: José Fonseca <[email protected]>
* llvmpipe: Remove lp_rast_get_num_threads().José Fonseca2013-07-222-11/+0
| | | | | | Never called. Trivial.
* scons: Don't use -z defs ld option on Mac.José Fonseca2013-07-212-2/+4
| | | | Should fix fdo bug 67098.
* glsl: Initialize ast_function member variables.Vinson Lee2013-07-211-1/+2
| | | | | | Fixes "Uninitialized pointer field" defect reported by Coverity. Signed-off-by: Vinson Lee <[email protected]>
* Apple: glFlush() is not needed with CGLFlushDrawable()Jeremy Huddleston Sequoia2013-07-201-2/+0
| | | | | | <rdar://problem/14496373> Signed-off-by: Jeremy Huddleston Sequoia <[email protected]>
* util/u_math: Define NAN/INFINITY macros for MSVC.José Fonseca2013-07-201-0/+4
| | | | Untested. But should hopefully fix the build.
* llvmpipe/tests: update arith test to check for edge casesZack Rusin2013-07-191-9/+19
| | | | | | | | | Test infs, zeros and nans with our arith functions to assure correct/defined behavior with those values. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: add a log function that handles edge casesZack Rusin2013-07-192-0/+21
| | | | | | | | | Same as log2_safe, which means that it can handle infs, 0s and nans. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: export unordered/ordered cmp to a common functionZack Rusin2013-07-191-283/+158
| | | | | | | | | Only the floating point operarators change everything else is the same so it makes sense to share the code. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: handle -inf, inf and nan's in sin/cos instructionsZack Rusin2013-07-192-0/+49
| | | | | | | | | sin/cos for anything not finite is nan and everything else has to be between [-1, 1]. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: add a version of log2 which handles edge casesZack Rusin2013-07-193-6/+65
| | | | | | | | | | | | | | That means that if input is: * - less than zero (to and including -inf) then NaN will be returned * - equal to zero (-denorm, -0, +0 or +denorm), then -inf will be returned * - +infinity, then +infinity will be returned * - NaN, then NaN will be returned It's a separate function because the checks are a little bit costly and in most cases are likely unnecessary. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: fix edge cases in exp2Zack Rusin2013-07-191-3/+7
| | | | | | | | | | exp(0) has to be exactly 1, exp(-inf) has to be 0, exp(inf) has to be inf and exp(nan) has to be nan, this fixes all of those cases. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: handle nan's in min/maxZack Rusin2013-07-196-52/+482
| | | | | | | | | | | Both D3D10 and OpenCL say that if one the inputs is nan then the other should be returned. To preserve that behavior the patch fixes both the sse and the non-sse paths in both functions and adds helper code for handling nans. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* scons: Disallow undefined symbols in Xlib libGL.so.José Fonseca2013-07-192-0/+6
| | | | | | | | It's not the first time that, due to missing build dependencies or incomplete commits, we end up with a broken libGL.so that's missing symbols, causing all tests to fail catastrophically. Instead try to catch this sort of issues earlier.
* mesa: Dispatch ARB_framebuffer_object and EXT_framebuffer_object differently9.2-branchpointTomasz Lis2013-07-186-6/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Almost all of the functions between the ARB and the EXT share the same GLX protocol because the functionality is, essentially, identical. However, there are some differences between the extensions: - In the ARB extension, names must come from glGenBuffers. - In the ARB extension, framebuffer objects are not shared (but they are in the EXT). For these reasons, glBindFramebuffer and glBindRenderbuffer have different GLX protocol opcodes than their EXT counterparts. Currently these functions alias each other in the dispatch table. This makes it impossible to be truly spec conformant. This patch enables fixing the conformance issue by splitting glBindFramebuffer / glBindFramebufferEXT and glBindRenderbuffer / glBindRenderbufferEXT into separate dispatch table entries. Patches will be available shortly to: - Fix the conformance issue. - Stop advertising the EXT in OpenGL 3.1 (or core profiles). HOWEVER, this does represent a compatibility break between the loader (libGL or the Xserver GLX module) and the driver. Mesa drivers compiled without this change will request a single dispatch table entry for glBindFramebuffer and glBindFramebufferEXT. Since the updated loader has different entries for each, the request will fail, and the driver will die in a fire. Drivers built with the change should continue to load fine on loaders without the change. In this case, the driver will separately ask for entries for glBindFramebuffer and glBindFramebufferEXT, and the loader will tell it the same location. Since the loader in the server's GLX module is not (yet) updated, this should not be a problem. We also do not advertise the ARB extension from the server, so, again, this should not be a problem for the server. HOWEVER, this means that DRI1 drivers (remember mga_dri.so?) will no longer load with libGL build hereafter. That means this patch will need to be back ported to the 8.0 branch. v2 (idr): Added missing GLX protocol opcodes for the EXT functions and corrected the opcodes for the ARB functions. Updated GLX indirect_api unit test and dispatch sanity unit test. Signed-off-by: Tomasz Lis <[email protected]> Signed-off-by: Bartosz Zawistowski <[email protected]> Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Ian Romanick <[email protected]> [v1]
* st/mesa: Enable the ARB_shading_language_420pack extension for 1.30+.Kenneth Graunke2013-07-181-0/+1
| | | | | | | | Any driver that supports GLSL 1.30 should be able to handle this extension, as it's entirely implemented in the GLSL compiler. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Marek Olšák <[email protected]>