summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mesa: make _mesa_buffer_storage() staticTimothy Arceri2017-05-072-13/+7
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: make _mesa_copy_buffer_sub_data() staticTimothy Arceri2017-05-072-17/+8
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: make _mesa_clear_buffer_sub_data() staticTimothy Arceri2017-05-072-29/+13
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: add KHR_no_error support for flush mapped buffer functionsTimothy Arceri2017-05-074-3/+33
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: make _mesa_flush_mapped_buffer_range() staticTimothy Arceri2017-05-072-15/+9
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: add KHR_no_error support for unmap buffer functionsTimothy Arceri2017-05-074-2/+25
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: split unmap_buffer() in twoTimothy Arceri2017-05-071-12/+17
| | | | | | | This will allow us to implement KHR_no_error support for unmap functions. Reviewed-by: Eric Anholt <[email protected]>
* mesa: make _mesa_unmap_buffer() staticTimothy Arceri2017-05-072-9/+5
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: add KHR_no_error support for some map buffer functionsTimothy Arceri2017-05-075-4/+67
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: split out validation from map_buffer_range()Timothy Arceri2017-05-071-27/+50
| | | | | | | This will allow us to add KHR_no_error support for *BufferRange functions. Reviewed-by: Eric Anholt <[email protected]>
* mesa: make map_buffer_range() staticTimothy Arceri2017-05-072-20/+13
| | | | Reviewed-by: Eric Anholt <[email protected]>
* i965: Drop BRW_NEW_BLORP from 3DSTATE_VF atom.Kenneth Graunke2017-05-061-2/+1
| | | | | | | | BLORP doesn't program 3DSTATE_VF, since it doesn't use index buffers, making the setting irrelevant. So there's no need to re-emit it after a BLORP operation - the old setting will still be in place. Reviewed-by: Topi Pohjolainen <[email protected]>
* i965: Port 3DSTATE_VF to genxml and simplify the implementation.Kenneth Graunke2017-05-063-43/+29
| | | | | | | | | | | | | The whole "it might be used for non-indexed draws" thing is no longer true - it turns out this was a mistake, and removed in OpenGL 4.5. (See Marek's commit 96cbc1ca29e0b1f4f4d6c868b8449999aecb9080.) So we can simplify this and just program 0 for non-indexed draws. We can also use #if blocks to remove the atom on Ivybridge/Baytrail, now that they have a separate atom list from Haswell. No more runtime checks. Reviewed-by: Topi Pohjolainen <[email protected]>
* mesa: Simplify _mesa_primitive_restart_index().Kenneth Graunke2017-05-061-10/+2
| | | | | | | We can use a simple shift equation rather than a switch statement. Reviewed-by: Rafael Antognolli <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* Revert "radeonsi: constify a bunch of the perfcounter structs."Marek Olšák2017-05-063-46/+52
| | | | | | | This reverts commit 7088b655e8828bb960f528dd33132de27c505b8f. It breaks performance counters. If you use them with this commit, they hang the machine hard. Sysrq and ssh don't work.
* Revert "radeonsi: fix build with GCC 4.8"Marek Olšák2017-05-061-1/+1
| | | | | | This reverts commit 485ece83aceb3a35792efbc6fe2bca57ba46c04a. It's needed to revert 7088b655e8828bb960f528dd33132de27c505b8f.
* freedreno/a3xx: fix hang w/ large render targets and small gmemRob Clark2017-05-063-0/+7
| | | | | | | | | Possibly other gen's have a similar limit. Fixes glmark2 -b shadow with larger resolutions on devices with small gmem (for example, fullscreen 1080p on 8x16/db410c). Cc: [email protected] Signed-off-by: Rob Clark <[email protected]>
* freedreno/ir3: add macro to declare variable length arraysRob Clark2017-05-061-18/+21
| | | | | | We have enough of these, that we should stop open coding this. Signed-off-by: Rob Clark <[email protected]>
* glsl: skip tree grafting for sampler and image typesNicolai Hähnle2017-05-061-0/+11
| | | | | | | v2: - use is_sampler()/is_image() instead (Samuel Pitoiset) Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* glsl: teach lower_ubo_reference about samplers inside structuresSamuel Pitoiset2017-05-061-0/+15
| | | | | | | | | | | | | | In a situation like: (tex vec4 (record_ref (var_ref f) tex) (constant vec2 (0.000000 0.000000)) 0 1 () ) The sampler needs to be lowered, otherwise this ends up with "ir_dereference_variable @ 0x229a100 specifies undeclared variable `ubo_load_temp' @ 0x2290440" Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* glsl: link bindless layout qualifiersSamuel Pitoiset2017-05-061-0/+44
| | | | | | | | | | | | From section 4.4.6 of the ARB_bindless_texture spec: "If both bindless_sampler and bound_sampler, or bindless_image and bound_image, are declared at global scope in any compilation unit, a link- time error will be generated." Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: do not count bindless samplers/images when linking uniformsSamuel Pitoiset2017-05-061-2/+2
| | | | | | | | | | | | | From section 2.14.8 of the ARB_bindless_texture spec: "(modify second paragraph, p. 126) ... against the MAX_COMBINED_TEXTURE_IMAGE_UNITS limit. Samplers accessed using texture handles (section 3.9.X) are not counted against this limit." Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* glsl: lower bindless sampler/image packed varyingsSamuel Pitoiset2017-05-061-0/+14
| | | | | | | | v3: - rebase (and remove (sampler) ? 1 : vector_elements) Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* glsl: implement ARB_bindless_texture conversionsSamuel Pitoiset2017-05-063-10/+84
| | | | | | | | | | | | | | | | | | | | | | | | From section 5.4.1 of the ARB_bindless_texture spec: "In the following four constructors, the low 32 bits of the sampler type correspond to the .x component of the uvec2 and the high 32 bits correspond to the .y component." uvec2(any sampler type) // Converts a sampler type to a // pair of 32-bit unsigned integers any sampler type(uvec2) // Converts a pair of 32-bit unsigned integers to // a sampler type uvec2(any image type) // Converts an image type to a // pair of 32-bit unsigned integers any image type(uvec2) // Converts a pair of 32-bit unsigned integers to // an image type v4: - fix up comment style v3: - rebase (and remove (sampler) ? 1 : vector_elements) Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* glsl: allow bindless samplers/images to be used with constructorsSamuel Pitoiset2017-05-061-2/+14
| | | | | | | | | | | | | | | | | | | | | For the explicit conversions. From section 4.1.7 of the ARB_bindless_texture spec: "Samplers are represented using 64-bit integer handles, and may be converted to and from 64-bit integers using constructors." From section 4.1.X of the ARB_bindless_texture spec: "Images are represented using 64-bit integer handles, and may be converted to and from 64-bit integers using constructors." v3: - add spec comment - update the glsl error message Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> (v2) Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: add is_valid_constructor() helper functionSamuel Pitoiset2017-05-061-2/+8
| | | | | | | | | This will help for the explicit conversions for sampler and image types as specified by ARB_bindless_texture. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: add ARB_bindless_texture operationsSamuel Pitoiset2017-05-064-0/+35
| | | | | | | | For the explicit pack/unpack conversions. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: allow bindless samplers/images to be initializedSamuel Pitoiset2017-05-061-3/+14
| | | | | | | | | | | | | | | | | | | From section 4.1.7 of the ARB_bindless_texture spec: "Samplers may be declared as shader inputs and outputs, as uniform variables, as temporary variables, and as function parameters." From section 4.1.X of the ARB_bindless_texture spec: "Images may be declared as shader inputs and outputs, as uniform variables, as temporary variables, and as function parameters." v3: - add spec comment - update the glsl error message Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: allow bindless samplers/images to be l-valuesSamuel Pitoiset2017-05-061-0/+14
| | | | | | | | | | | | | | | | | | | From section 4.1.7 of the ARB_bindless_texture spec: "Samplers can be used as l-values, so can be assigned into and used as "out" and "inout" function parameters." From section 4.1.X of the ARB_bindless_texture spec: "Images can be used as l-values, so can be assigned into and used as "out" and "inout" function parameters." v4: - invert the logic v3: - update spec comment formatting - keep the read_only check Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: add _mesa_glsl_parse_state object to is_lvalue()Samuel Pitoiset2017-05-064-7/+9
| | | | | | | | | | | | | | | Yes, this is a bit hacky but we don't really have the choice. Plain GLSL doesn't accept bindless samplers/images as l-values while it's allowed when ARB_bindless_texture is enabled. The default NULL parameter is because we can't access the _mesa_glsl_parse_state object in few places in the compiler. One is_lvalue(NULL) call is for IR validation but other checks happen elsewhere, should be safe. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* glsl: relax bindless sampler arrays indexingSamuel Pitoiset2017-05-061-1/+7
| | | | | | | | | | | | | From section 4.1.7 of the ARB_bindless_texture spec: "Samplers aggregated into arrays within a shader (using square brackets []) can be indexed with arbitrary integer expressions." v3: - update spec comment formatting Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: reject bindless samplers/images frag inputs without 'flat'Samuel Pitoiset2017-05-061-0/+20
| | | | | | | | | | | | | | | | | | | From section 4.3.4 of the ARB_bindless_texture spec "(modify last paragraph, p. 35, allowing samplers and images as fragment shader inputs) ... Fragment inputs can only be signed and unsigned integers and integer vectors, floating point scalars, floating-point vectors, matrices, sampler and image types, or arrays or structures of these. Fragment shader inputs that are signed or unsigned integers, integer vectors, or any double-precision floating- point type, or any sampler or image type must be qualified with the interpolation qualifier "flat"." v3: - update spec comment formatting Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: allow bindless samplers/images as vertex shader inputsSamuel Pitoiset2017-05-061-0/+14
| | | | | | | | | | | | | | | | From section 4.3.4 of the ARB_bindless_texture spec: "(modify third paragraph of the section to allow sampler and image types) ... Vertex shader inputs can only be float, single-precision floating-point scalars, single-precision floating-point vectors, matrices, signed and unsigned integers and integer vectors, sampler and image types." v3: - update spec comment formatting Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: allow bindless samplers/images as varying variablesSamuel Pitoiset2017-05-061-0/+20
| | | | | | | | | | | | | | | | | | | | | | | From section 4.3.4 of the ARB_bindless_texture spec: "(modify third paragraph of the section to allow sampler and image types) ... Vertex shader inputs can only be float, single-precision floating-point scalars, single-precision floating-point vectors, matrices, signed and unsigned integers and integer vectors, sampler and image types." From section 4.3.6 of the ARB_bindless_texture spec: "Output variables can only be floating-point scalars, floating-point vectors, matrices, signed or unsigned integers or integer vectors, sampler or image types, or arrays or structures of any these." v3: - add spec comment Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: allow input memory qualifiers for imagesSamuel Pitoiset2017-05-061-0/+10
| | | | | | | | | | | ARB_bindless_texture spec allows images to be declared as shader inputs. v2: - put the */ on the following line (Timothy Arceri) Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: allow image qualifiers inside structuresSamuel Pitoiset2017-05-061-4/+23
| | | | | | | | | | | | ARB_bindless_texture allows to declare images inside structures which means that qualifiers like writeonly should be allowed. I have a got a confirmation from Jeff Bolz (one author of the spec), because the spec doesn't clearly explain this. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: allow bindless images to be declared inside structuresSamuel Pitoiset2017-05-061-1/+1
| | | | | | | | | The spec doesn't clearly state this, but I have got clarification from the spec authors. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: allow bindless samplers/images inside interface blocksSamuel Pitoiset2017-05-061-2/+12
| | | | | | | | | | | | | | | | | From section 4.3.7 of the ARB_bindless_texture spec: "(remove the following bullet from the last list on p. 39, thereby permitting sampler types in interface blocks; image types are also permitted in blocks by this extension)" * sampler types are not allowed v3: - update the spec comment - update the glsl error message Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: allow bindless samplers/images as function returnSamuel Pitoiset2017-05-061-3/+8
| | | | | | | | | | | | | The ARB_bindless_texture spec doesn't clearly state this, but as it says "Replace Section 4.1.7 (Samplers), p. 25" and, "Replace Section 4.1.X, (Images)", this should be allowed. v3: - add spec comment - update the glsl error message Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: allow bindless samplers/images as out and inout parametersSamuel Pitoiset2017-05-061-2/+14
| | | | | | | | | | | | | | | | | | | From section 4.1.7 of the ARB_bindless_texture spec: "Samplers can be used as l-values, so can be assigned into and used as "out" and "inout" function parameters." From section 4.1.X of the ARB_bindless_texture spec: "Images can be used as l-values, so can be assigned into and used as "out" and "inout" function parameters." v3: - add spec comment - update the glsl error message Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: allow to declare bindless samplers/images as non-uniformSamuel Pitoiset2017-05-061-17/+66
| | | | | | | | | | | | | | | | | | | | From section 4.1.7 of the ARB_bindless_texture spec: "Samplers may be declared as shader inputs and outputs, as uniform variables, as temporary variables, and as function parameters." From section 4.1.X of the ARB_bindless_texture spec: "Images may be declared as shader inputs and outputs, as uniform variables, as temporary variables, and as function parameters." v3: - add validate_storage_for_sampler_image_types() - update spec comment - update the glsl error message Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: process bindless/bound layout qualifiersSamuel Pitoiset2017-05-0610-3/+198
| | | | | | | | | | | | This adds bindless_sampler and bound_sampler (and respectively bindless_image and bound_image) to the parser. v3: - add an extra space in apply_bindless_qualifier_to_variable() - fix indentation in merge_qualifier() Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* glsl: do not make sampler/image types readonly variablesSamuel Pitoiset2017-05-062-4/+0
| | | | | | | | | | | | | | | | | In plain GLSL, sampler and image types can only be declared uniform-qualified global variables or 'in' function parameters. Setting the read_only flag seems quite useless because other checks will prevent sampler/image variables to be assigned and also because the flag is not set for atomic_uint types which are opaque types. This will also help for ARB_bindless_texture because samplers and images can be assigned when they are considered bindless. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* glsl: make sampler/image scalar typesSamuel Pitoiset2017-05-061-1/+1
| | | | | | | | | | As a side effect, this will magically fix std140/std430 interfaces for bindless samplers/images and will help for implementing the explicit conversions with constructors. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* glsl: make count_attribute_slots() returns 1 for samplers/imagesSamuel Pitoiset2017-05-061-2/+2
| | | | | | | | For packed varyings. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* glsl: make component_slots() returns 2 for samplers/imagesSamuel Pitoiset2017-05-062-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | Bindless samplers/images are 64-bit unsigned integers, which means they consume two components as specified by ARB_bindless_texture. It looks like we are not wasting uniform storage by changing this because default-block uniforms are not packed. So, if we use N uint uniforms, they occupy N * 16 bytes in the constant buffer. This is something that could be improved. Though, count_uniform_size needs to be adjusted to not count a sampler (or image) twice. As a side effect, this will probably break the cache if you have one because it will consider sampler/image types as two components. v3: - update the comments Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* glsl: make sampler/image types as 64-bitSamuel Pitoiset2017-05-062-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | The ARB_bindless_texture spec says: "Samplers are represented using 64-bit integer handles." and, "Images are represented using 64-bit integer handles." It seems simpler to always consider sampler and image types as 64-bit unsigned integer. This introduces a temporary workaround in _mesa_get_uniform() because at this point no flag are used to distinguish between bound and bindless samplers. This is going to be removed in a separate series. This avoids breaking arb_shader_image_load_store-state. v3: - update the comment slightly Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* glsl: add ARB_bindless_texture enableSamuel Pitoiset2017-05-063-0/+9
| | | | | | | | | This also adds the extension to the standalone GLSL compiler. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* mesa: add ARB_bindless_texture to the extensions listSamuel Pitoiset2017-05-062-0/+2
| | | | | | | | This is required for the following GLSL bits. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* radv/meta: fix restoring a push descriptor setFredrik Höglund2017-05-062-2/+7
| | | | | | | | | | | radv_bind_descriptor_set cannot be used to bind a push descriptor set since a push descriptor set does not have a buffer list. However, there is no need to add the buffers again when restoring a set, so this fix is also an optimization. Cc: "17.1" <[email protected]> Signed-off-by: Fredrik Höglund <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>