summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Revert "mesa: remove FLUSH_VERTICES() in _mesa_MatrixMode()"Brian Paul2015-10-161-0/+1
| | | | | | | | This reverts commit 0de5e0f3fb0f3671a3ecec6ab4473f9131ecd0ae. Michel Dänzer spotted two piglit regressions from the change. I suspect that removing the FLUSH_VERTICES() actually exposed a bug elsewhere but I don't have time to hunt down the root issue at this time.
* glsl: fix check SSBOs support for builtin functionsSamuel Iglesias Gonsalvez2015-10-161-1/+1
| | | | | | | | | | | | | | | | has_shader_storage_buffer_objects() returns true also if the OpenGL context is 4.30 or ES 3.1. Previously, we were saying that all atomic*() GLSL builtin functions for SSBOs were not available when OpenGL ES 3.1 context was in use. Fixes 48 dEQP-GLES31 tests: dEQP-GLES31.functional.ssbo.atomic.* Signed-off-by: Samuel Iglesias Gonsalvez <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]>
* mesa: Set api prefix to version string when overriding versionTapani Pälli2015-10-161-1/+18
| | | | | | | | | | | | | | | | | | | | | | Otherwise there are problems when user overrides version and application such as Piglit wants to detect used api with glGetString(GL_VERSION). This makes it currently impossible to run glslparsertest tests for OpenGL ES when using version override. Below is example when using MESA_GLES_VERSION_OVERRIDE=3.1. Before: "3.1 Mesa 11.1.0-devel (git-24a1a15)" After: "OpenGL ES 3.1 Mesa 11.1.0-devel (git-78042ff)" v2: only include api prefix for OpenGL ES (Boyan Ding) Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]> Cc: "11.0" <[email protected]>
* nir: Get the number of SSBOs and UBOs rightIago Toral Quiroga2015-10-161-2/+2
| | | | | | | | | | | Before d31f98a272e429d and 56e2bdbca36a20 we had a sigle index space for UBOs and SSBOs, so NumBufferInterfaceBlocks would contain the combined number of blocks, not just one kind. This means that for shader programs using both UBOs and SSBOs, we were setting num_ssbos and num_ubos to a larger number than we should. Since the above commits we have separate index spaces for each so we can just get the right numbers. Reviewed-by: Jason Ekstrand <[email protected]>
* i965/vec4: Use the right number of UBOsIago Toral Quiroga2015-10-161-1/+1
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* i965/fs: use the right number of UBOsIago Toral Quiroga2015-10-161-1/+1
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* freedreno: add debug option to dirty state after drawRob Clark2015-10-153-2/+7
| | | | | | Similar to "dclear", "ddraw" will mark all state dirty after each draw. Signed-off-by: Rob Clark <[email protected]>
* freedreno/a3xx: cache-flush is needed after MEM_WRITERob Clark2015-10-153-5/+14
| | | | | | | | Otherwise the mem2gmem blit would see potentially bogus texture coordinates. Fixes an issue that shows up with glamor. CC: "11.0" <[email protected]> Signed-off-by: Rob Clark <[email protected]>
* gallium/util: fix debug_get_flags_option on 32-bit harderRob Clark2015-10-151-3/+3
| | | | | | | | (yes, we want PRI?64, but we want the x version rather than the u version) Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* nv30: include the header of ffs prototypeChih-Wei Huang2015-10-151-0/+1
| | | | | | | | It fixes a building error of the android 6.0 64-bit target. Signed-off-by: Chih-Wei Huang <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]> Cc: [email protected]
* nv50/ir: use C++11 standard std::unordered_map if possibleChih-Wei Huang2015-10-151-3/+17
| | | | | | | | Note Android version before Lollipop is not supported. Signed-off-by: Chih-Wei Huang <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]> Cc: [email protected]
* nir/prog: Don't double-insert the fog-coord variableJason Ekstrand2015-10-151-3/+2
| | | | | | | nir_variable_create already inserts it in the right list for us so inserting it again causes a linked list corruption. Reviewed-by: Matt Turner <[email protected]>
* nir/glsl: Use shader_prog->Name for naming the NIR shaderJason Ekstrand2015-10-151-1/+1
| | | | | | | This has the better name to use. Aparently, sh->Name is usually 0. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Neil Roberts <[email protected]>
* nir: Add helpers for creating variables and adding them to listsJason Ekstrand2015-10-154-46/+99
| | | | Reviewed-by: Iago Toral Quiroga <[email protected]>
* nir/prog: Use nir_foreach_variableJason Ekstrand2015-10-151-1/+1
| | | | | Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]>
* mesa: wrap a ridiculously long line in es1_conversion.cBrian Paul2015-10-151-1/+19
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: add num_buffers() helper in blend.cBrian Paul2015-10-151-15/+22
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: optimize _UsesDualSrc blend flag settingBrian Paul2015-10-151-1/+6
| | | | | | | For glBlendFunc and glBlendFuncSeparate(), the _UsesDualSrc flag will be the same for all buffers, so no need to compute it N times. Reviewed-by: Eric Anholt <[email protected]>
* mesa: fix incorrect error string in _mesa_BlendEquationiARB()Brian Paul2015-10-151-1/+1
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: move validate_blend_factors() call after no-change checkBrian Paul2015-10-151-6/+6
| | | | | | | A redundant call to glBlendFuncSeparateiARB() is more likely than getting invalid values, so do the no-op check first. Reviewed-by: Eric Anholt <[email protected]>
* mesa: optimize no-change check in _mesa_BlendEquationSeparate()Brian Paul2015-10-151-15/+26
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: optimize no-change check in _mesa_BlendEquation()Brian Paul2015-10-151-12/+23
| | | | | | Same story as preceeding change to _mesa_BlendFuncSeparate(). Reviewed-by: Eric Anholt <[email protected]>
* mesa: optimize no-change check in _mesa_BlendFuncSeparate()Brian Paul2015-10-151-15/+28
| | | | | | | | | | | | Streamline the checking for no state change in _mesa_BlendFuncSeparate() (and _mesa_BlendFunc()). If _BlendFuncPerBuffer is false, we only need to check the 0th buffer state. Move argument validation after the no-op check. I'm looking at an app that issues about 1000 redundant glBlendFunc() calls per frame! Reviewed-by: Eric Anholt <[email protected]>
* mesa: short-cut new_state == _NEW_LINE in _mesa_update_state_locked()Brian Paul2015-10-151-1/+5
| | | | | | | | | | | We can skip to the end of _mesa_update_state_locked() if only the _NEW_LINE flag is set since none of the derived state depends on it (just like _NEW_CURRENT_ATTRIB). Note that we still call the ctx->Driver.UpdateState() function, of course. v2: use bitmask-based test, per Eric. Reviewed-by: Eric Anholt <[email protected]>
* mesa: remove FLUSH_VERTICES() in _mesa_MatrixMode()Brian Paul2015-10-151-1/+0
| | | | | | | Changing the matrix mode alone has no effect on rendering and does not need to trigger a flush or state validation. Reviewed-by: Eric Anholt <[email protected]>
* mesa: android: Fix the incorrect path of sse_minmax.cChih-Wei Huang2015-10-151-1/+1
| | | | | | | | Cc: "10.6 11.0" <[email protected]> Fixes: 669cfc267a1 (android: mesa: fix the path of the SSE4_1 optimisations) Signed-off-by: Chih-Wei Huang <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* i965: android: add the i965_compile_FILES sources to the driverMauro Rossi2015-10-151-0/+1
| | | | | | | | | | | | | | | | i965_compile_FILES are needed otherwise we'll error out as below: target SharedLib: i915_dri (out/target/product/x86/obj/SHARED_LIBRARIES/i915_dri_intermediates/LINKED/i915_dri.so) external/mesa/src/mesa/drivers/dri/i965/brw_ir_fs.h:181: error: undefined reference to 'fs_inst::~fs_inst()' ... ... external/mesa/src/mesa/drivers/dri/i965/intel_screen.c:1484: error: undefined reference to 'brw_compiler_create' collect2: error: ld returned 1 exit status build/core/shared_library.mk:81: recipe for target 'out/target/product/x86/obj/SHARED_LIBRARIES/i965_dri_intermediates/LINKED/i965_dri.so' failed make: *** [out/target/product/x86/obj/SHARED_LIBRARIES/i965_dri_intermediates/LINKED/i965_dri.so] Error 1 [Emil Velikov: tweak commit message] Signed-off-by: Emil Velikov <[email protected]>
* program: convert _mesa_init_gl_program() to take struct gl_program *Emil Velikov2015-10-1510-67/+68
| | | | | | | | Rather than accepting a void pointer, only to down and up cast around it, convert the function to take the base (struct gl_program) pointer. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* nir: include nir_instr_set.h in the tarballEmil Velikov2015-10-151-0/+1
| | | | Signed-off-by: Emil Velikov <[email protected]>
* glsl: Allow arrays of arrays in GLSL ES 3.10 and GLSL 4.30Timothy Arceri2015-10-153-18/+20
| | | | | | | | | | V3: use a check_*_allowed style function for requirements checking rather than has_* which doesn't encapsulate the error message V2: add missing 's' to the extension name in error messages and add decimal place in version string Reviewed-by: Marta Lofstedt <[email protected]>
* glsl: allow for AoA in calculating offset to ubo start regionTimothy Arceri2015-10-151-2/+1
| | | | Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* glsl: build ubo name and indexing offset for AoATimothy Arceri2015-10-151-30/+86
| | | | | | V2: split out unrelated change as suggested by Samuel Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* glsl: link uniform block arrays of arraysTimothy Arceri2015-10-153-112/+229
| | | | | | | This adds support for setting up the UniformBlock structures for AoA and also adds support for resizing AoA blocks with a packed layout. Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* glsl: Add AoA support when checking for non-const indexTimothy Arceri2015-10-151-1/+1
| | | | | | | When checking for non-const indexing of interfaces take into account arrays of arrays Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* glsl: Add support for lowering interface block arrays of arraysTimothy Arceri2015-10-151-14/+38
| | | | | | V2: make array processing functions static Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* glsl: add AoA support for an inteface with unsized array membersTimothy Arceri2015-10-151-4/+12
| | | | | | | | | Add support for setting the max access of an unsized member of an interface array of arrays. For example ifc[j][k].foo[i] where foo is unsized. Reviewed-by: Ian Romanick <[email protected]>
* glsl: add AoA support for linking interface blocks with unsized membersTimothy Arceri2015-10-152-6/+7
| | | | Reviewed-by: Ian Romanick <[email protected]>
* glsl: avoid hitting assert for arrays of arraysTimothy Arceri2015-10-151-0/+6
| | | | | | | Also add TODO comment about adding proper support Signed-off-by: Timothy Arceri <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* glsl: add AoA support for atomic countersTimothy Arceri2015-10-151-23/+54
| | | | | | | | | | | | | | This marks all counters in an AoA as active. For AoA all but the innermost array are treated as separate counters/uniforms. The Nvidia binary also goes further and finds inactive counters in the AoA, in future we should do this too, however this gets things working for the time being. This change also removes the use of UniformHash for atomic counters, this avoids having to generate name strings used as hash keys. Reviewed-by: Ian Romanick <[email protected]>
* glsl: add std140 layout support for AoATimothy Arceri2015-10-151-7/+8
| | | | | Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* i965: add arrays of arrays support for varyingsTimothy Arceri2015-10-152-5/+3
| | | | | | V2: get the correct vector elements value for outputs Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* glsl: calculate AoA uniform offset correctly for structsTimothy Arceri2015-10-151-1/+16
| | | | | | | This allows the correct offset to be calculated for use in indirect indexing of samplers. Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* glsl: remove dead code in a single passTimothy Arceri2015-10-154-17/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently only one ir assignment is removed for each var in a single dead code optimisation pass. This means if a var has more than one assignment, then it requires all the glsl optimisations to be run again for each additional assignment to be removed. Another pass is also required to remove the variable itself. With this change all assignments and the variable are removed in a single pass. Some of the arrays of arrays conformance tests that were looping through 8 dimensions ended up with a var with hundreds of assignments. This change helps ES31-CTS.arrays_of_arrays.InteractionFunctionCalls1 go from around 3 min 20 sec -> 2 min ES31-CTS.arrays_of_arrays.InteractionFunctionCalls2 went from around 9 min 20 sec to 7 min 30 sec I had difficulty getting the public shader-db to give a consistent result with or without this change but the results seemed unchanged at between 15-20 seconds. Thomas Helland measured change with shader-db on his machine from approx 117 secs to 112 secs. V3: Simplify freeing of list as suggested by Ian, and spelling fixes. V2: Add assert to be sure references are counted before assignments. Reviewed-by: Ian Romanick <[email protected]> Tested-By: Thomas Helland <[email protected]> Tested-by: Ian Romanick <[email protected]>
* glsl: dont allow gl_PerVertex to be redeclared as an array of arraysTimothy Arceri2015-10-152-1/+8
| | | | | | | | | | V3: move patch after fixes to ast for AoA and add const to helper as suggested by Ian V2: move single dimensional array detection into a helper Signed-off-by: Timothy Arceri <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* glsl: check that only the outermost array is unsizedTimothy Arceri2015-10-151-0/+22
| | | | Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* glsl: allow AoA to be sized by initializer or constructorTimothy Arceri2015-10-155-41/+82
| | | | | | | V2: Split out unsized array validation to its own patch as suggested by Samuel. Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* glsl: add support for initialising sampler AoATimothy Arceri2015-10-151-34/+49
| | | | Reviewed-by: Ian Romanick <[email protected]>
* glsl: Add support for linking uniform arrays of arraysTimothy Arceri2015-10-152-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | V3: Fix setting of data.location for struct AoA UBO members V2: Handle arrays of arrays in the same way structures are handled The ARB_arrays_of_arrays spec doesn't give very many details on how AoA uniforms are intended to be implemented. However in the ARB_program_interface_query spec there are details that show AoA are intended to be handled in a similar way to structs. Issues 7 from the ARB_program_interface_query spec: We define rules consistent with our enumeration rules for other complex types. For existing one-dimensional arrays, we enumerate a single entry if the array is an array of basic types, or separate entries for each array element if the array is an array of structures. We follow similar rules here. For a uniform array such as: uniform vec4 a[5][4][3]; we enumerate twenty different entries ("a[0][0][0]" through "a[4][3][0]"), each of which is treated as an array with three elements. This is morally equivalent to what you'd get if you worked around the limitation in current GLSL via: struct ArrayBottom { vec4 c[3]; }; struct ArrayMid { ArrayBottom b[3]; }; uniform ArrayMid a[5]; which would enumerate "a[0].b[0].c[0]" through "a[4].b[3].c[0]". Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* i965: Don't hardcode FS in "validation failed!" message.Kenneth Graunke2015-10-141-1/+1
| | | | | | | | Instead, print "Scalar VS" or "Scalar FS". Otherwise it's really confusing which stage is broken. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Kristian Høgsberg <[email protected]>
* glsl: Support uint index in lower_vector_insertJordan Justen2015-10-141-1/+5
| | | | | | | | | The ES31-CTS.compute_shader.pipeline-compute-chain test case generates an unsigned index by using gl_LocalInvocationID.x and gl_LocalInvocationID.y as array indices. Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Tapani Pälli <[email protected]>