summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2015-11-20automake: loader: honour the XCB_DRI3 cflagsEmil Velikov1-0/+1
Without this the compilation will fail, as the headers are installed in a non-default location. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Kai Wasserbäch <kai@dev.carbon-project.org> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Matt Turner <mattst88@gmail.com>
2015-11-20automake: egl: add symbols testEmil Velikov2-0/+58
Should help us catch issues where we expose any extra symbols by mistake. Just like the ones fixes with previous commit. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Kai Wasserbäch <kai@dev.carbon-project.org> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Acked-by: Matt Turner <mattst88@gmail.com>
2015-11-20automake: loader: rework the CPPFLAGSEmil Velikov1-11/+4
Rather than duplicating things, just use the generic AM_CPPFLAGS. This has the fortunate side-effect of adding VISIBILITY_CFLAGS for the dri3 helper. The latter of which was erroneously exposing some internal symbols. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reported-by: Kai Wasserbäch <kai@dev.carbon-project.org> Tested-by: Kai Wasserbäch <kai@dev.carbon-project.org> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Matt Turner <mattst88@gmail.com>
2015-11-19i965: Enable EXT_shader_samples_identicalIan Romanick5-2/+34
On the vec4 backend, textureSamplesIdentical() will always return false. There are currently no test cases for the vec4 backend, so we don't have much confidence in any implementation. We also don't think anyone is likely to miss it. v2: Handle immediate value for MCS smarter. Rebase on changes to nir_texop_sampels_identical (missing second parameter). Suggested by Jason. v3: Add Neil's code to handle 16x MSAA in the FS. Also rebase on top of f9a9ba5e. Stub out the vec4 implementation. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Neil Roberts <neil@linux.intel.com> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> [v2] Reviewed-by: Chris Forbes <chrisf@ijw.co.nz> [v2]
2015-11-19i965/vec4: Handle nir_tex_src_ms_index more like the scalarIan Romanick1-8/+10
v2: Rebase on top of f9a9ba5e. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
2015-11-19nir: Add nir_texop_samples_identical opcodeIan Romanick6-1/+18
This is the NIR analog to GLSL IR ir_samples_identical. v2: Don't add the second nir_tex_src_ms_index parameter. Suggested by Ken and Jason. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
2015-11-19glsl: Add textureSamplesIdenticalEXT built-in functionsIan Romanick1-0/+44
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
2015-11-19glsl: Add ir_samples_identical opcodeIan Romanick10-1/+26
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
2015-11-19glsl: Extension tracking for EXT_shader_samples_indenticalIan Romanick3-0/+6
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
2015-11-19mesa: Extension tracking for EXT_shader_samples_indenticalIan Romanick2-0/+2
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
2015-11-19nir: add nir_ssa_for_alu_src()Rob Clark2-4/+23
Using something like: numer = nir_ssa_for_src(bld, alu->src[0].src, nir_ssa_alu_instr_src_components(alu, 0)); for alu src's with swizzle, like: vec1 ssa_10 = intrinsic load_uniform () () (0, 0) vec2 ssa_11 = intrinsic load_uniform () () (1, 0) vec2 ssa_2 = udiv ssa_10.xx, ssa_11 ends up turning into something like: vec1 ssa_10 = intrinsic load_uniform () () (0, 0) vec2 ssa_11 = intrinsic load_uniform () () (1, 0) vec2 ssa_13 = imov ssa_10 ... because nir_ssa_for_src() ignore's the original nir_alu_src's swizzle. Instead for alu instructions, nir_src_for_alu_src() should be used to ensure the original alu src's swizzle doesn't get lost in translation: vec1 ssa_10 = intrinsic load_uniform () () (0, 0) vec2 ssa_11 = intrinsic load_uniform () () (1, 0) vec2 ssa_13 = imov ssa_10.xx ... v2: check for abs/neg, and re-use existing nir_alu_src Signed-off-by: Rob Clark <robclark@freedesktop.org> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
2015-11-19nir: fix missing increments of num_inputs/num_outputsRob Clark2-0/+4
Note: not quite perfect, we should use type_size vfunc (in compiler_options or nir_shader?) to determine how much we increment num_inputs/outputs/uniforms. But we don't have that yet, so let's at least fix things for the existing users of these passes. Signed-off-by: Rob Clark <robclark@freedesktop.org> Acked-by: Jason Ekstrand <jason.ekstrand@intel.com>
2015-11-19nir/print: show # of uniforms/inputs/outputsRob Clark1-0/+4
Signed-off-by: Rob Clark <robclark@freedesktop.org>
2015-11-19nir/print: show shader name/label if setRob Clark1-0/+6
Signed-off-by: Rob Clark <robclark@freedesktop.org> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
2015-11-19nir: add nir_var_all enumRob Clark4-2/+7
Otherwise, passing -1 gets you: error: invalid conversion from 'int' to 'nir_variable_mode' [-fpermissive] Signed-off-by: Rob Clark <robdclark@gmail.com> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
2015-11-19freedreno/a4xx: fix 5_5_5_1 texture sampler formatIlia Mirkin1-1/+1
This fixes teximage-colors, fbo-generatemipmap-formats, and probably others (in relation to the RGB5 formats, others still fail). Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Cc: mesa-stable@lists.freedesktop.org
2015-11-19freedreno/a4xx: add depth clamp and halfz clipIlia Mirkin3-4/+9
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-19freedreno/a4xx: allow seamless cubemap filtering to be enabled per-textureIlia Mirkin3-1/+3
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-19freedreno/a4xx: support lod_biasIlia Mirkin2-0/+7
The lower layers assume that we support this, and it's been core since GL 1.4. This fixes a slew of piglit tests, especially around tex-miplevel-selection. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Cc: mesa-stable@lists.freedesktop.org
2015-11-19nv50: allow using inline vertex data submit when gl_VertexID is usedSamuel Pitoiset5-15/+46
The hardware can actually generates vertexid when vertices come from a client-side buffer like when glDrawElements is used. This doesn't fix (or break) any piglit tests but it improves the previous attempt of Ilia (c830d19 "nv50: avoid using inline vertex data submit when gl_VertexID is used") The only disadvantage is that only works on G84+, but we don't really care of that weird and old NV50 chipset. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-19nv50: add NV84_3D macroSamuel Pitoiset3-3/+4
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-19i965: Drop IMM fs_reg/src_reg -> brw_reg conversions.Matt Turner2-36/+2
The previous two commits make this unnecessary. Reviewed-by: Emil Velikov <emil.velikov@collabora.co.uk> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-11-19i965/vec4: Replace src_reg(imm) constructors with brw_imm_*().Matt Turner12-239/+195
Cuts 1.5k of .text. Reviewed-by: Emil Velikov <emil.velikov@collabora.co.uk> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-11-19i965/fs: Use brw_imm_uw().Matt Turner2-8/+3
W/UW immediates are 16-bits, but those 16-bits must be replicated in the high 16-bits of the 32-bit field. Remove the useless W/UW immediate saturating code, since we'll now be using the appropriate immediate (and W/UW immediates in the IR can now no longer be larger than 16-bits). Reviewed-by: Emil Velikov <emil.velikov@collabora.co.uk> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-11-19i965/fs: Replace fs_reg(imm) constructors with brw_imm_*().Matt Turner9-217/+167
Cuts 10k of .text, of which only 776 bytes are the fs_reg constructor implementations themselves. text data bss dec hex filename 5204535 214112 27784 5446431 531b1f i965_dri.so before 5193977 214112 27784 5435873 52f1e1 i965_dri.so after Reviewed-by: Emil Velikov <emil.velikov@collabora.co.uk> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-11-19i965: Make brw_imm_vf4() take 8-bit restricted floats.Matt Turner2-32/+11
This partially reverts commit bbf8239f92ecd79431dfa41402e1c85318e7267f. I didn't like that commit to begin with -- computing things at compile time is fine -- but for purposes of verifying that the resulting values are correct, looking up 0x00 and 0x30 in a table is a lot better than evaluating a recursive function. Anyway, by making brw_imm_vf4() take the actual 8-bit restricted floats directly (instead of only integral values that would be converted to restricted float), we can use this function as a replacement for the vector float src_reg/fs_reg constructors. brw_float_to_vf() is not currently an inline function, so it will not be evaluated at compile time. I'll address that in a follow-up patch. Reviewed-by: Emil Velikov <emil.velikov@collabora.co.uk> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-11-19mesa: Add test for sorted extension tableNanley Chery2-0/+52
Enable developers to know if the table's alphabetical sorting is maintained or lost. v2: Move "*" next to pointer name (Matt) Include extensions_table.h instead of extensions.h (Ian) Remove extra " *" in comment (Ian) Signed-off-by: Nanley Chery <nanley.g.chery@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2015-11-19mesa/extensions: Sort the extension table alphabeticallyNanley Chery1-81/+93
Make it easier to determine where to add new extensions. Performed with the vim sort command. v2: Insert newline after last #define (Matt) Signed-off-by: Nanley Chery <nanley.g.chery@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2015-11-19mesa: enable EXT_blend_func_extended if the driver supports the ARB versionRyan Houdek1-0/+1
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-19mesa: allow MAX_DUAL_SOURCE_DRAW_BUFFERS to be available to ESRyan Houdek1-1/+3
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-19mesa: enable usage of blend_func_extended blend factors in GLES2Ryan Houdek1-3/+3
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-19glsl: add a parse check to check for the index layout qualifierRyan Houdek1-0/+5
This can only be used if EXT_blend_func_extended is enabled Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-19glsl: add GL_EXT_blend_func_extended preprocessor defineRyan Houdek1-0/+2
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-19glsl: add support for EXT_blend_func_extended builtinsRyan Houdek2-0/+92
gl_MaxDualSourceDrawBuffersEXT - Maximum dual-source draw buffers supported For ESSL 1.0, it provides two builtins since you can't have user-defined color output variables: gl_SecondaryFragColorEXT gl_SecondaryFragDataEXT[MaxDSDrawBuffers] Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-19glsl: add EXT_blend_func_extended parser enablesRyan Houdek2-0/+8
This adds a state for the maximum dual source draw variables available and the variable for determining if the extension has been enabled in the program shaders. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-19glapi: add EXT_blend_func_extended XML definitionsRyan Houdek3-1/+36
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-19os: check for GALLIUM_PROCESS_NAME to override os_get_process_name()Brian Paul1-18/+29
Useful for debugging and for glretrace. Reviewed-by: Charmaine Lee <charmainel@vmware.com> Reviewed-by: José Fonseca <jfonseca@vmware.com>
2015-11-19glsl: fix ir_constant::equals() for doublesConnor Abbott1-2/+7
Reviewed-by: Timothy Arceri <t_arceri@yahoo.com.au> Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
2015-11-19glsl: fix isinf() for doublesConnor Abbott1-1/+10
Reviewed-by: Timothy Arceri <t_arceri@yahoo.com.au> Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
2015-11-19nir: fix constant folding of bfiConnor Abbott1-2/+2
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
2015-11-19hud: fix Windows build breakBrian Paul1-0/+6
Protect signal-related code with PIPE_OS_UNIX test. Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
2015-11-18glsl: Fix off-by-one error in array size check assertionIan Romanick1-2/+1
Apparently, this has been a bug since 2010 (c30f6e5d). Also use ARRAY_SIZE instead of open coding it. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Cc: mesa-stable@lists.freedesktop.org
2015-11-18mesa: Don't expose GL_EXT_shader_integer_mix in GLES 1.xIan Romanick1-1/+1
There are no shaders, so it doesn't even make sense to expose the extension. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> Cc: Nanley Chery <nanley.g.chery@intel.com>
2015-11-18glsl: Silence unused parameter warningsIan Romanick1-2/+2
builtin_functions.cpp:5289:52: warning: unused parameter 'num_arguments' [-Wunused-parameter] unsigned num_arguments, ^ builtin_functions.cpp:5290:52: warning: unused parameter 'flags' [-Wunused-parameter] unsigned flags) ^ Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2015-11-18glsl: Silence ignored qualifier warningIan Romanick1-1/+1
I think the intention was to mark the "this" parameter as const, but const goes on the other end to do that. In file included from glsl_symbol_table.cpp:26:0: ast.h:339:35: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] const bool is_single_dimension() ^ Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
2015-11-18i965: Allow indirect GS input indexing in the scalar backend.Kenneth Graunke4-46/+107
This allows arbitrary non-constant indices on GS input arrays, both for the vertex index, and any array offsets beyond that. All indirects are handled via the pull model. We could potentially handle indirect addressing of pushed data as well, but it would add additional code complexity, and we usually have to pull inputs anyway due to the sheer volume of input data. Plus, marking pushed inputs as live due to indirect addressing could exacerbate register pressure problems pretty badly. We'd need to be careful. v2: Use updated MOV_INDIRECT opcode. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
2015-11-19gallium/hud: control visibility at startup and runtime.Jimmy Berry1-0/+29
- env GALLIUM_HUD_VISIBLE: control default visibility - env GALLIUM_HUD_SIGNAL_TOGGLE: toggle visibility via signal Signed-off-by: Marek Olšák <marek.olsak@amd.com>
2015-11-18i965/nir: Add hooks for testing nir_shader_cloneJason Ekstrand1-9/+26
This commit adds code for testing nir_shader_clone by running it after each and every optimization pass and throwing away the old shader. Testing nir_shader_clone is hidden behind a new INTEL_CLONE_NIR environment variable. Reviewed-by: Rob Clark <robclark@freedesktop.org> Acked-by: Kenneth Graunke <kenneth@whitecape.org>
2015-11-18nir: Add support for cloning shadersJason Ekstrand4-0/+682
This commit is heavily based on one by Rob Clark <robdclark@gmail.com> but reworked to re-use nir_create functions and do less hashing. Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Rob Clark <robclark@freedesktop.org>
2015-11-18i965/nir: Validate that NIR passes call nir_metadata_preserve().Kenneth Graunke3-3/+48
Failing to call nir_metadata_preserve() can have nasty consequences: some pass breaks dominance information, but leaves it marked as valid, causing some subsequent pass to go haywire and probably crash. This pass adds a simple validation mechanism to ensure passes handle this properly. We add a new bogus metadata flag that isn't used for anything in particular, set it before each pass, and ensure it *isn't* still set after the pass. nir_metadata_preserve will reset the flag, so correct passes will work, and bad passes will assert fail. (I would have made these functions static inline, but nir.h is included in C++, so we can't bit-or enums without lots of casting...) Thanks to Dylan Baker for the idea. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>