summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* nir: Convert nir_variable_mode to a bitfieldJason Ekstrand2016-04-132-17/+19
| | | | | | | | | There are several passes where we need to specify some set of variable modes that the pass needs top operate on. This lets us easily do that. Acked-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]>
* gallium/swr: Make flat shading tris work.George Kyriazis2016-04-132-0/+5
| | | | | | | - Incorporate flatshade flag into the shader generation - Use provoking vertex (vc) in shader when flat shading. Reviewed-by: Bruce Cherniak <[email protected]>
* Revert "freedreno/a4xx: better occlusion/sample counting"Rob Clark2016-04-131-6/+1
| | | | | | | | | | This reverts commit 62fa868728c729152af0d7cecd1d3e47e831cb7d. dEQP-GLES3.functional.occlusion_query.* was unhappy about that change. Still not really sure *what* the other slots in the sample results buffer are. Signed-off-by: Rob Clark <[email protected]>
* freedreno/a4xx: rasterizer_discard supportRob Clark2016-04-131-0/+17
| | | | | | | | | | | | | | | | | This one is slightly annoying, since trying to write RBRC from draw would clobber values set in the tiling/gmem code. We could do command- stream patching for RBRC, as is done on a3xx. Although since it seems to be a rarely used feature, it is easier just to do RMW to set/clear the bit. Fixes dEQP-GLES3.functional.rasterizer_discard.basic.write_depth_triangles and related tests. a3xx still needs the same feature, although there it probably makes more sense to take advantage of the existing cmdstream patching which is required for RBRC for other reasons. Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3: fix array textures on a4xxRob Clark2016-04-131-3/+9
| | | | | | | | Seems like a4xx needs offset added to array index for all arrays, whereas a3xx only for cubemap arrays. Fixes a whole swath of dEQP fails (roughly *sampler2darray*). Signed-off-by: Rob Clark <[email protected]>
* freedreno: fix stream-out offset handling for lines/trisRob Clark2016-04-131-1/+1
| | | | | | | | We need to increment offset by # of vertices, not by # of prims. Fixes a bunch of dEQP fails involving prims other than points. For example, dEQP-GLES3.functional.transform_feedback.position.lines_separate Signed-off-by: Rob Clark <[email protected]>
* freedreno: fix handling for stream-out offsetsRob Clark2016-04-131-1/+2
| | | | | | | | | | | | | | | | | | If changed && append, we shouldn't be resetting the internal offset back to zero. This fixes issues w/ sequences like: glBeginTransformFeedback() glDraw() glPauseTransformFeedback() glDraw() glResumeTransformFeedback() glDraw() glEndTransformFeedback() Fixes dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_vec3 and related tests. Signed-off-by: Rob Clark <[email protected]>
* freedreno: fix prims-emitted queryRob Clark2016-04-133-2/+12
| | | | | | This should only count when TF is not paused. Signed-off-by: Rob Clark <[email protected]>
* freedreno: fix max-line-widthRob Clark2016-04-131-0/+10
| | | | | | | | | | | dEQP noticed that we were advertising completely bogus values. The actual maximum is 127.0f. *But* we have to use an artifically low maximum to work around a bug in the dEQP test, which gets confused when the max line width is too large and lines start going off-screen. Signed-off-by: Rob Clark <[email protected]>
* freedreno: add flag to enable dEQP hacksRob Clark2016-04-132-0/+2
| | | | Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3: hack to avoid getting stuck in a loopRob Clark2016-04-131-1/+11
| | | | | | | There are still some edge cases which result in a neighbor-loop. Which needs to be fixed, but this hack at least makes deqp tests finish. Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3: use (ss) instead of (sy) for ldlvRob Clark2016-04-131-1/+7
| | | | | | | Fixes a bunch of flat-varying fail on a4xx (where we need to use ldlv to read the un-interpolated varying). Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3: cleanup double cmps.s from frontendRob Clark2016-04-131-0/+31
| | | | | | | | | | | | | Since we cannot mov into a predicate register, the frontend uses a 'cmps.s p0.x, cond, 0' as a stand-in for mov to p0.x. It does this since it has no way to know that the source cond instruction (ie. for a kill, br, etc) will only be used to write the predicate reg. Detect this, and re-write the instruction writing p0.x to skip the original cmps.[sfu]. (It is done like this, rather than re-writing the dest of the first cmps.[sfu] in case the first cmps.[sfu] actually has other users.) Signed-off-by: Rob Clark <[email protected]>
* glsl: Rename "vertex_input_slots" -> "is_vertex_input"Matt Turner2016-04-136-14/+14
| | | | | | | | | | | vertex_input_slots would be an appropriate name for an integer, but not a bool. Also remove a cond ? true : false from a count_attribute_slots() call site, noticed during the rename. Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]>
* gallivm: Workaround LLVM PR 27332.Jose Fonseca2016-04-131-3/+14
| | | | | | | | | | | | | The credit for finding and isolating this bug goes to Vinson and Roland. The buggy LLVM versions were found by doing opt -instcombine llvm-pr27332.ll > /dev/null where llvm-pr27332.ll is the IR from https://llvm.org/bugs/show_bug.cgi?id=27332#c3 Reviewed-by: Roland Scheidegger <[email protected]>
* gallium/radeon: move a comment to the correct placeMarek Olšák2016-04-131-3/+3
| | | | trivial
* radeonsi: gate PIPE_CAP_SHADER_BUFFER_OFFSET_ALIGNMENT by LLVM versionNicolai Hähnle2016-04-131-1/+2
| | | | | | | | | Otherwise we incorrectly claim ARB_ssbo support even with older LLVM versions. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94917 Reviewed-by: Michel Dänzer <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* doxygen: Generate Doxygen for NIRElie TOURNIER2016-04-136-1/+108
| | | | | | | | | | | | | | | | Now, one can do the following to generate and read the nir Doxygen: cd $MESA_TOP/doxygen make firefox nir/index.html Update v2: Correct TAGFILES in nir.doxy Signed-off-by: Elie TOURNIER <[email protected]> Reviewed-by: Rhys Kidd <[email protected]> [Emil Velikov] v3: Rebase. Signed-off-by: Emil Velikov <[email protected]>
* doxygen: update glsl linkElie TOURNIER2016-04-131-4/+5
| | | | | | | Signed-off-by: Elie TOURNIER <[email protected]> Reviewed-by: Rhys Kidd <[email protected]> Tested-by: Rhys Kidd <[email protected]> Acked-by: Emil Velikov <[email protected]>
* doxygen: Remove deprecated settings in common.doxyRhys Kidd2016-04-131-51/+0
| | | | | | | | | | | | | | | | | | | | | | These Doxygen features are deprecated, as reported by Doxygen 1.8.9.1 Warning: Tag `USE_WINDOWS_ENCODING' at line 66 of file `common.doxy' has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" Warning: Tag `DETAILS_AT_TOP' at line 157 of file `common.doxy' has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" Warning: Tag `HTML_ALIGN_MEMBERS' at line 616 of file `common.doxy' has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" Warning: Tag `XML_SCHEMA' at line 848 of file `common.doxy' has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" Warning: Tag `XML_DTD' at line 854 of file `common.doxy' has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" Warning: Tag `MAX_DOT_GRAPH_WIDTH' at line 1115 of file `common.doxy' has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" Warning: Tag `MAX_DOT_GRAPH_HEIGHT' at line 1123 of file `common.doxy' has become obsolete. To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u" Signed-off-by: Rhys Kidd <[email protected]> Acked-by: Emil Velikov <[email protected]>
* doxygen: Fix typo in doxygen/tnl.doxyRhys Kidd2016-04-131-1/+1
| | | | | | | TAGFILE relative folder should match .tag file Signed-off-by: Rhys Kidd <[email protected]> Acked-by: Emil Velikov <[email protected]>
* doxygen: Correct TAGFILE linkage of mainRhys Kidd2016-04-138-8/+8
| | | | | | | | | | | | | | | | | core.doxy was renamed to main.doxy, along with output folder in the below 2004 commit. Correct the other modules' TAGFILE linkage to find the main folder. commit 3ef972f538e1ff207f5919a8068bf14af18fb270 Author: Brian Paul <[email protected]> Date: Sun May 16 22:07:02 2004 +0000 Replaced 'core' with 'main'. Other minor updates. Signed-off-by: Rhys Kidd <[email protected]> Acked-by: Emil Velikov <[email protected]>
* doxygen: Update .gitignoreRhys Kidd2016-04-131-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last of these output directories was removed in 2007. commit c2e0570831ae130fce1fa374bebe25bb9c561e29 Author: Jerome Glisse <[email protected]> Date: Fri Feb 16 23:18:56 2007 +0100 Update doxygen doc to reflet vbo changes. Update doxygen doc, array_cache no longuer exist, new shiny vbo modules is there. Tested on unix, but i think i didn't broke that bat :). commit 3ef972f538e1ff207f5919a8068bf14af18fb270 Author: Brian Paul <[email protected]> Date: Sun May 16 22:07:02 2004 +0000 Replaced 'core' with 'main'. Other minor updates. commit 69db632a9df035cdc852cc64fb14038919929a70 Author: Jose Fonseca <[email protected]> Date: Thu May 1 23:32:54 2003 +0000 Move the Doxygen configuration files into the usual places and integrate with the build system. Signed-off-by: Rhys Kidd <[email protected]> Acked-by: Emil Velikov <[email protected]>
* doxygen: Remove references to miniglxRhys Kidd2016-04-134-6/+2
| | | | | | | | | | | | | | miniglx was removed in February 2010. Clean up remaining unnecessary doxygen references. commit a9e36696837b2c31ecee4017a0adffbd987c1eff Author: Kristian Høgsberg <[email protected]> Date: Thu Feb 25 16:17:04 2010 -0500 Remove remaining miniglx references Signed-off-by: Rhys Kidd <[email protected]> Acked-by: Emil Velikov <[email protected]>
* doxygen: Fix doxygen/gbm.doxy TAGFILESRhys Kidd2016-04-131-1/+1
| | | | | | | | | | There has never been a doxygen/gbm_setup output folder. Appears to have been a copy-paste error from original commit in 245341f406bbdf23fec3d8ea8ad95c147c11ad1c. Signed-off-by: Rhys Kidd <[email protected]> Acked-by: Emil Velikov <[email protected]>
* doxygen: Correct TAGFILE relative pathsRhys Kidd2016-04-136-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | Per Doxygen documentation, to combine external documentation (stored in a *.tag file) with a project the TAGFILES option should be set in the configuration file. A tag file typically only contains a relative location of the documentation from the point where doxygen was run. So when you include a tag file in other project you have to specify where the external documentation is located in relation this project. You can do this in the configuration file by assigning the (relative) location to the tag files specified after the TAGFILES configuration option. If you use a relative path it should be relative with respect to the directory where the HTML output of your project is generated; so a relative path from the HTML output directory of a project to the HTML output of the other project that is linked to. Signed-off-by: Rhys Kidd <[email protected]> Acked-by: Emil Velikov <[email protected]>
* doxygen: Fix doxygen/glapi.doxyRhys Kidd2016-04-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | The src/mesa/glapi folder was relocated in the below commit. Amend the doxygen/glapi.doxy INPUT setting accordingly. Whilst here, in addition this change also avoids a bug in the consolidated Doxygen output caused by doxygen/glapi.doxy inadvertently overwriting doxygen/swrast.tag via its GENERATE_TAGFILE setting. This bug depended upon the specific order each *.tag was built. commit 296adbd545b8efd38c9ed508166b2de2764a444b Author: Chia-I Wu <[email protected]> Date: Mon Apr 26 12:56:44 2010 +0800 glapi: Move to src/mapi/. Move glapi to src/mapi/{glapi,es1api,es2api}. Signed-off-by: Rhys Kidd <[email protected]> Acked-by: Emil Velikov <[email protected]>
* doxygen: Remove src/mesa/shader/ referencesRhys Kidd2016-04-139-58/+0
| | | | | | | | | | | | | | | | | Mesa has not had a src/mesa/shader/ folder since Mesa 7.9 removed it in October 2010, as part of a revised GLSL compiler written by Intel. Remove doxygen/shader.doxy and consequential changes made throughout. In addition to removing an unnecessary Doxygen doxyfile, this change also avoids a bug in the consolidated Doxygen output caused by doxygen/shader.doxy inadvertently overwriting doxygen/swrast.tag via its GENERATE_TAGFILE setting. This bug depended upon the specific order each *.tag was built. Signed-off-by: Rhys Kidd <[email protected]> Acked-by: Emil Velikov <[email protected]>
* gallium/radeon: add an env variable to force a level of aniso filteringMarek Olšák2016-04-135-9/+31
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* llvmpipe: Test rounding of x.5.Jose Fonseca2016-04-131-1/+2
| | | | | | | Leverage nearbyintif function, which should be available on all C99 implementations. Trivial.
* gallivm: use llvm.nearbyint instead of llvm.round.Roland Scheidegger2016-04-131-98/+1
| | | | | | | | | | | | | | | | We used to use sse roundps intrinsic directly, but switched to use the llvm intrinsics for rounding with e4f01da15d8c6ce3e8c77ff3ff3d2ce2574a3f7b. However, llvm semantics follows standard math lib round function which is specced to do roundNearestAwayFromZero but we really want roundNearestEven (moreoever, using round generates atrocious code since the cpu can't do it directly and it results in scalar calls to libm __roundf). So, use llvm.nearbyint instead, which does exactly the right thing, and even has the advantage of being available with llvm 3.3 too. (I've verified it actually generates a roundps instruction with llvm 3.3.) This fixes https://bugs.freedesktop.org/show_bug.cgi?id=94909 Reviewed-by: Jose Fonseca <[email protected]>
* nv50/ra: `isinf()` is in namespace `std` since C++11.Pierre Moreau2016-04-131-0/+4
| | | | | | | | | | This fixes a compile error while building Nouveau with C++11 enabled (and glibc >= 2.23). This happens if SWR is enabled, as it forces C++11. Signed-off-by: Pierre Moreau <[email protected]> Signed-off-by: Jose Fonseca <[email protected]> https://bugs.freedesktop.org/show_bug.cgi?id=94907
* scons: Allow building with Address Sanitizer.Jose Fonseca2016-04-134-7/+26
| | | | | | | | | | | | | | | | | | | | | | | libasan is never linked to shared objects (which doesn't go well with -z,defs). It must either be linked to the main executable, or (more practically for OpenGL drivers) be pre-loaded via LD_PRELOAD. Otherwise works. I didn't find anything with llvmpipe. I suspect the fact that the JIT compiled code isn't instrumented means there are lots of errors it can't catch. But for non-JIT drivers, the Address/Leak Sanitizers seem like a faster alternative to Valgrind. Usage (Ubuntu 15.10): scons asan=1 libgl-xlib export LD_LIBRARY_PATH=$PWD/build/linux-x86_64-debug/gallium/targets/libgl-xlib LD_PRELOAD=libasan.so.2 any-opengl-application Acked-by: Roland Scheidegger <[email protected]>
* mesa: Change an error code in glSamplerParameterI[iu]v().Kenneth Graunke2016-04-121-4/+6
| | | | | | | | | | | | This is supposed to be INVALID_OPERATION in ES. We already did this for the fv/iv variants, but not Iiv/Iuv, which are new in ES 3.2 (or extensions). Fixes: ES31-CTS.texture_border_clamp.samplerparameteri_non_gen_sampler_error Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
* softpipe: Free tgsi.image elements on context destruction.Jose Fonseca2016-04-131-0/+2
| | | | | | | | Courtesy of address sanitizer. [airlied: free buffers as well] Reviewed-by: Roland Scheidegger <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* softpipe: Enable ARB_framebuffer_no_attachmentsEdward O'Callaghan2016-04-133-4/+5
| | | | | Signed-off-by: Edward O'Callaghan <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* vc4: Work around hardware limits on the number of verts in a single draw.Eric Anholt2016-04-121-18/+92
| | | | | Fixes rendering failures in glmark2's refract and bump:render-mode=high-poly demos, and partially in its terrain demo.
* softpipe: avoid buffer overflowThomas Hindoe Paaboel Andersen2016-04-132-8/+8
| | | | Signed-off-by: Dave Airlie <[email protected]>
* tgsi: fix buffer overflowThomas Hindoe Paaboel Andersen2016-04-131-1/+1
| | | | | | | Increase r to four channels as rgba is written to it Reviewed-by: Edward O'Callaghan <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* swr: handle pci cap requestsTim Rowley2016-04-121-0/+4
| | | | Reviewed-by: George Kyriazis <[email protected]>
* swr: support samplers in vertex shadersTim Rowley2016-04-126-105/+228
| | | | Reviewed-by: George Kyriazis <[email protected]>
* radeonsi: enable GLSL 4.20 and therefore OpenGL 4.2Nicolai Hähnle2016-04-123-5/+7
| | | | | | | This is the last necessary bit for OpenGL 4.2 support. All driver-specific functionality has already been implemented as part of extensions. Reviewed-by: Edward O'Callaghan <[email protected]>
* va: check null context in vlVaDestroyContextIurie Salomov2016-04-131-0/+4
| | | | | Signed-off-by: Iurie Salomov <[email protected]> Reviewed-by: Julien Isorce <[email protected]>
* nir/clone: Copy bit size when cloning registersJason Ekstrand2016-04-121-0/+1
| | | | | Reported-by: Mark Janes <[email protected]> Reviewed-by: Eduardo Lima Mitev <[email protected]>
* radeonsi: fix a critical SI hang since PIPELINESTAT_START/STOP was addedMarek Olšák2016-04-132-9/+2
| | | | | For some reason unknown to me, SI hangs if the event is written after CONTEXT_CONTROL.
* glsl: Don't copy propagate or tree graft precise values.Kenneth Graunke2016-04-123-1/+8
| | | | | | | | | | | | | | | | | | | | | | | This is kind of a hack. We currently track precise requirements by decorating ir_variables. Propagating or grafting the RHS of an assignment to a precise value into some other expression tree can lose those decorations. In the long run, it might be better to replace these ir_variable decorations with an "exact" decoration on ir_expression nodes, similar to what NIR does. In the short run, this is probably good enough. It preserves enough information for glsl_to_nir to generate "exact" decorations, and NIR will then handle optimizing these expressions reasonably. Fixes ES31-CTS.gpu_shader5.precise_qualifier. v2: Drop invariant handling, as it shouldn't be necessary (caught by Jason Ekstrand). Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* i965/tiled_memcpy: Fix rgba8_copy_16_aligned_dst() typoKristian Høgsberg Kristensen2016-04-121-4/+4
| | | | | | | | | Copy and paste error in commit eafeb8db66dae7619ff3cb039706b990d718cba7: i965/tiled_memcpy: Unroll bytes==64 case. Signed-off-by: Kristian Høgsberg Kristensen <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* glsl/linker: Recurse on struct fields when adding shader variablesKristian Høgsberg Kristensen2016-04-121-6/+45
| | | | | | | | | | ARB_program_interface_query requires that we add struct fields recursively down to basic types. Fixes 52 struct test cases in dEQP-GLES31.functional.program_interface_query.* Signed-off-by: Kristian Høgsberg Kristensen <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* glsl/linker: Pass name and type through to create_shader_variable()Kristian Høgsberg Kristensen2016-04-121-9/+12
| | | | | | | | No functional change here, but this now lets us recurse throught structs in add_shader_variable(). Signed-off-by: Kristian Høgsberg Kristensen <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* glsl/linker: Pass absolute location to add_shader_variable()Kristian Høgsberg Kristensen2016-04-121-7/+10
| | | | | | | | | This lets us pass in the absolution location of a variable instead of computing it in add_shader_variable() based on variable location and bias. This is in preparation for recursing into struct variables. Signed-off-by: Kristian Høgsberg Kristensen <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>