mesa.git
8 years agoi965/skl: Utilize new 5th bit for gateway messages
Ben Widawsky [Tue, 26 Jan 2016 23:42:08 +0000 (15:42 -0800)]
i965/skl: Utilize new 5th bit for gateway messages

Cc: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agogenX/pipeline: Don't make vertex bindings with holes
Jason Ekstrand [Tue, 26 Jan 2016 23:44:18 +0000 (15:44 -0800)]
genX/pipeline: Don't make vertex bindings with holes

8 years agoanv/cmd_buffer: Put base_instance in the second component
Jason Ekstrand [Tue, 26 Jan 2016 23:44:02 +0000 (15:44 -0800)]
anv/cmd_buffer: Put base_instance in the second component

8 years agoanv/image: clflush surface state map in anv_fill_buffer_surface_state().
Francisco Jerez [Tue, 26 Jan 2016 22:50:52 +0000 (14:50 -0800)]
anv/image: clflush surface state map in anv_fill_buffer_surface_state().

Some of its users had the required clflush on non-LLC platforms, some
didn't.  Put the clflush in anv_fill_buffer_surface_state() so we
don't forget.

8 years agoanv/image: clflush the right state map in anv_fill_image_surface_state().
Francisco Jerez [Tue, 26 Jan 2016 22:45:46 +0000 (14:45 -0800)]
anv/image: clflush the right state map in anv_fill_image_surface_state().

It was clflushing the nonrt_surface_state structure regardless of
which state structure was actually being initialized.

8 years agoanv/image: Upload raw buffer surface state for untyped storage image and texel buffer...
Francisco Jerez [Tue, 26 Jan 2016 20:23:08 +0000 (12:23 -0800)]
anv/image: Upload raw buffer surface state for untyped storage image and texel buffer access.

8 years agoanv/image: Fix image parameter initialization.
Francisco Jerez [Tue, 26 Jan 2016 20:20:01 +0000 (12:20 -0800)]
anv/image: Fix image parameter initialization.

8 years agoisl/gen9: Fix slice offset calculation for 1D array images.
Francisco Jerez [Tue, 26 Jan 2016 03:20:57 +0000 (19:20 -0800)]
isl/gen9: Fix slice offset calculation for 1D array images.

The X component of the offset is set to the layer index times layer
height which is obviously bogus, return the vertical offset of the
slice as Y component instead.  Fixes a few image load/store tests that
use 1D arrays on SKL when forcing it to fall back to untyped reads and
writes.

8 years agoi965/fs_surface_builder: Mask signed integers after conversion
Jason Ekstrand [Tue, 19 Jan 2016 01:30:59 +0000 (17:30 -0800)]
i965/fs_surface_builder: Mask signed integers after conversion

8 years agoanv/image: Actually fill out brw_image_param structs
Jason Ekstrand [Tue, 5 Jan 2016 21:55:00 +0000 (13:55 -0800)]
anv/image: Actually fill out brw_image_param structs

8 years agoanv/image_view: Add base mip and base layer fields
Jason Ekstrand [Tue, 5 Jan 2016 21:54:02 +0000 (13:54 -0800)]
anv/image_view: Add base mip and base layer fields

These will be needed by image_load_store

8 years agogen7: Add support for base vertex/instance
Jason Ekstrand [Tue, 26 Jan 2016 20:09:33 +0000 (12:09 -0800)]
gen7: Add support for base vertex/instance

8 years agogen8: Add support for base vertex/instance
Jason Ekstrand [Tue, 26 Jan 2016 20:08:31 +0000 (12:08 -0800)]
gen8: Add support for base vertex/instance

8 years agonir/spirv: Add proper support for InstanceIndex
Jason Ekstrand [Tue, 26 Jan 2016 19:48:23 +0000 (11:48 -0800)]
nir/spirv: Add proper support for InstanceIndex

8 years agonir/lower_io: Lower INSTNACE_INDEX
Jason Ekstrand [Tue, 26 Jan 2016 19:48:07 +0000 (11:48 -0800)]
nir/lower_io: Lower INSTNACE_INDEX

8 years agoglsl/enums: Add an enum for Vulkan instance index
Jason Ekstrand [Tue, 26 Jan 2016 19:47:23 +0000 (11:47 -0800)]
glsl/enums: Add an enum for Vulkan instance index

8 years agogenX/pipeline: Break emit_vertex_input out into common code
Jason Ekstrand [Tue, 26 Jan 2016 18:52:56 +0000 (10:52 -0800)]
genX/pipeline: Break emit_vertex_input out into common code

It's mostly the same and contains some non-trivial logic, so it really
should be shared.  Also, we're about to make some modifications here that
we would really like to share.

8 years agoanv: Remove long unused anv_aub.h
Kristian Høgsberg Kristensen [Tue, 26 Jan 2016 22:53:00 +0000 (14:53 -0800)]
anv: Remove long unused anv_aub.h

8 years agoanv: Dirty fragment shader descriptors in meta restore
Kristian Høgsberg Kristensen [Tue, 26 Jan 2016 22:43:07 +0000 (14:43 -0800)]
anv: Dirty fragment shader descriptors in meta restore

We need to reemit render targets, so dirtying VK_SHADER_STAGE_VERTEX_BIT
doesn't help us much.

8 years agoanv: Reemit STATE_BASE_ADDRESS after second level cmd buffers
Kristian Høgsberg Kristensen [Tue, 26 Jan 2016 22:41:06 +0000 (14:41 -0800)]
anv: Reemit STATE_BASE_ADDRESS after second level cmd buffers

Otherwise the primary batch will continue using the state base addresses
set by the secondary.  Fixes remaining renderpass tests.

8 years agoanv/meta: Fix sample mask in clear pipelines
Chad Versace [Tue, 26 Jan 2016 19:01:24 +0000 (11:01 -0800)]
anv/meta: Fix sample mask in clear pipelines

Once we begin emitting the correct sample mask,
genX_3DSTATE_SAMPLE_MASK_pack will hit an assertion if the mask contains
too many bits.

8 years agoi965/compiler: Set nir_options.vertex_id_zero_based
Jason Ekstrand [Tue, 26 Jan 2016 00:10:12 +0000 (16:10 -0800)]
i965/compiler: Set nir_options.vertex_id_zero_based

8 years agoHACK/i965: Default to scalar GS on BDW+
Jason Ekstrand [Mon, 25 Jan 2016 23:52:53 +0000 (15:52 -0800)]
HACK/i965: Default to scalar GS on BDW+

8 years agoMerge remote-tracking branch 'mattst88/nir-lower-pack-unpack' into vulkan
Jason Ekstrand [Mon, 25 Jan 2016 23:50:31 +0000 (15:50 -0800)]
Merge remote-tracking branch 'mattst88/nir-lower-pack-unpack' into vulkan

8 years agogen7/state: Apply min/mag filters individually for samplers
Jason Ekstrand [Mon, 25 Jan 2016 23:33:08 +0000 (15:33 -0800)]
gen7/state: Apply min/mag filters individually for samplers

This fixes tests which apply different min and mag filters, and depend on
the min filter to be correct.

8 years agogen8/state: Apply min/mag filters individually for samplers
Ben Widawsky [Mon, 25 Jan 2016 23:26:25 +0000 (15:26 -0800)]
gen8/state: Apply min/mag filters individually for samplers

This fixes tests which apply different min and mag filters, and depend on the
min filter to be correct.

8 years agoi965/fs: Feel free to spill partial reads/writes
Jason Ekstrand [Mon, 25 Jan 2016 23:00:38 +0000 (15:00 -0800)]
i965/fs: Feel free to spill partial reads/writes

Now that we properly handle write-masking, this should be safe.

8 years agoi965/fs: Properly write-mask spills
Jason Ekstrand [Mon, 25 Jan 2016 20:42:01 +0000 (12:42 -0800)]
i965/fs: Properly write-mask spills

For unspills (scratch reads), we can just set WE_all all the time because
we always unspill into a new GRF.  For spills, we have two options: If the
instruction has a 32-bit-per-channel destination and "normal" regioning,
then we just do a regular write and it will interleave channels from
different control-flow paths properly.  If, on the other hand, the the
regioning is non-normal, then we have to unspill, run the instruction, and
spill afterwards.  In this second case, we need to do the spill with
we_ALL.

8 years agoanv: Remove a few finished finishme
Kristian Høgsberg Kristensen [Mon, 25 Jan 2016 23:14:47 +0000 (15:14 -0800)]
anv: Remove a few finished finishme

8 years agoanv: Remove stale assert
Kristian Høgsberg Kristensen [Mon, 25 Jan 2016 23:12:43 +0000 (15:12 -0800)]
anv: Remove stale assert

This goes back to when we didn't have the subpass number in the command
buffer begin info.

8 years agoi965/gen7+: Use NIR for lowering of pack/unpack opcodes.
Matt Turner [Mon, 25 Jan 2016 19:07:28 +0000 (11:07 -0800)]
i965/gen7+: Use NIR for lowering of pack/unpack opcodes.

8 years agoi965/vec4: Implement nir_op_pack_uvec2_to_uint.
Matt Turner [Mon, 25 Jan 2016 18:49:15 +0000 (10:49 -0800)]
i965/vec4: Implement nir_op_pack_uvec2_to_uint.

And mark nir_op_pack_uvec4_to_uint unreachable, since it's only produced
by lowering pack[SU]norm4x8 which the vec4 backend does not need.

8 years agonir: Add lowering support for unpacking opcodes.
Matt Turner [Mon, 25 Jan 2016 19:07:02 +0000 (11:07 -0800)]
nir: Add lowering support for unpacking opcodes.

8 years agonir: Add lowering support for packing opcodes.
Matt Turner [Mon, 25 Jan 2016 19:05:52 +0000 (11:05 -0800)]
nir: Add lowering support for packing opcodes.

8 years agoi965/fs: Implement support for extract_word.
Matt Turner [Thu, 21 Jan 2016 02:56:37 +0000 (18:56 -0800)]
i965/fs: Implement support for extract_word.

The vec4 backend will lower it.

8 years agonir: Add opcodes to extract bytes or words.
Matt Turner [Thu, 21 Jan 2016 17:09:29 +0000 (09:09 -0800)]
nir: Add opcodes to extract bytes or words.

The uint versions zero extend while the int versions sign extend.

8 years agoanv/meta: Fix CopyBuffer when size matches HW limit
Nanley Chery [Thu, 31 Dec 2015 00:00:47 +0000 (16:00 -0800)]
anv/meta: Fix CopyBuffer when size matches HW limit

Perform a copy when the copy_size matches the HW limit (max_copy_size).
Otherwise the current behavior is that we fail the following assertion:

      assert(height < max_surface_dim);

because the values are equal.

8 years agoanv: Don't use uninitialized barycentric_interp_modes
Kristian Høgsberg Kristensen [Mon, 25 Jan 2016 19:34:32 +0000 (11:34 -0800)]
anv: Don't use uninitialized barycentric_interp_modes

If we don't have a fragment shader, wm_prog_data in undefined.

8 years agoanv: Disable fs dispatch for depth/stencil only pipelines
Kristian Høgsberg Kristensen [Mon, 25 Jan 2016 19:24:19 +0000 (11:24 -0800)]
anv: Disable fs dispatch for depth/stencil only pipelines

Fixes most renderpass bugs.

8 years agoglsl: Remove 2x16 half-precision pack/unpack opcodes.
Matt Turner [Thu, 21 Jan 2016 19:46:22 +0000 (11:46 -0800)]
glsl: Remove 2x16 half-precision pack/unpack opcodes.

i965/fs was the only consumer, and we're now doing the lowering in NIR.

8 years agoi965/fs: Switch from GLSL IR to NIR for un/packHalf2x16 lowering.
Matt Turner [Thu, 21 Jan 2016 23:30:57 +0000 (15:30 -0800)]
i965/fs: Switch from GLSL IR to NIR for un/packHalf2x16 lowering.

8 years agonir: Add lowering of nir_op_unpack_half_2x16.
Matt Turner [Thu, 21 Jan 2016 23:46:47 +0000 (15:46 -0800)]
nir: Add lowering of nir_op_unpack_half_2x16.

8 years agoi965: Make separate nir_options for scalar/vector stages.
Matt Turner [Thu, 21 Jan 2016 17:30:05 +0000 (09:30 -0800)]
i965: Make separate nir_options for scalar/vector stages.

We'll want to have different lowering options set for scalar/vector
stages.

8 years agoi965: Move brw_compiler_create() to new brw_compiler.c.
Matt Turner [Thu, 21 Jan 2016 17:19:53 +0000 (09:19 -0800)]
i965: Move brw_compiler_create() to new brw_compiler.c.

A future patch will want to use designated initalizers, which aren't
available in C++, but this is C.

8 years agonir: Make argument order of unop_convert match binop_convert.
Matt Turner [Thu, 21 Jan 2016 17:54:19 +0000 (09:54 -0800)]
nir: Make argument order of unop_convert match binop_convert.

Strangely the return and parameter types were reversed.

8 years agoanv/cmd_buffer: Zero out binding tables and samplers in state_reset
Jason Ekstrand [Sat, 23 Jan 2016 06:57:02 +0000 (22:57 -0800)]
anv/cmd_buffer: Zero out binding tables and samplers in state_reset

This fixes a use of an undefined value if the client uses push constants in
a stage without ever setting any descriptors on GEN8-9.

8 years agonir/opcodes: Properly flush denormals in fquantize2f16
Jason Ekstrand [Sat, 23 Jan 2016 06:04:09 +0000 (22:04 -0800)]
nir/opcodes: Properly flush denormals in fquantize2f16

8 years agoi965/nir: Properly flush denormals in nir_op_fquantize2f16
Jason Ekstrand [Sat, 23 Jan 2016 05:24:53 +0000 (21:24 -0800)]
i965/nir: Properly flush denormals in nir_op_fquantize2f16

8 years agoanv/format: Add a helpful comment about format names
Jason Ekstrand [Sat, 23 Jan 2016 03:14:41 +0000 (19:14 -0800)]
anv/format: Add a helpful comment about format names

8 years agoanv/formats: Add support for 3 more formats
Jason Ekstrand [Sat, 23 Jan 2016 03:03:27 +0000 (19:03 -0800)]
anv/formats: Add support for 3 more formats

8 years agoanv/pipeline: Add a default L3$ setup
Jason Ekstrand [Sat, 23 Jan 2016 03:02:55 +0000 (19:02 -0800)]
anv/pipeline: Add a default L3$ setup

8 years agoanv/formats: Rename ambiguous func parameter
Chad Versace [Sat, 23 Jan 2016 01:51:24 +0000 (17:51 -0800)]
anv/formats: Rename ambiguous func parameter

vkGetPhysicalDeviceImageFormatProperties has multiple 'flags'
parameters.

8 years agoanv/formats: Advertise multisample formats
Chad Versace [Sat, 23 Jan 2016 01:47:59 +0000 (17:47 -0800)]
anv/formats: Advertise multisample formats

Teach vkGetPhysicalDeviceImageFormatProperties() to advertise
multisampled formats.

8 years agoanv/image: Drop assertion that samples == 1
Chad Versace [Sat, 23 Jan 2016 01:16:20 +0000 (17:16 -0800)]
anv/image: Drop assertion that samples == 1

8 years agoisl: Fix gen8_choose_msaa_layout()
Chad Versace [Sat, 23 Jan 2016 01:06:55 +0000 (17:06 -0800)]
isl: Fix gen8_choose_msaa_layout()

Gen8 requires any Y tiling, not any *standard* Y tiling.

8 years agoisl: Add func isl_tiling_is_any_y()
Chad Versace [Sat, 23 Jan 2016 01:06:44 +0000 (17:06 -0800)]
isl: Add func isl_tiling_is_any_y()

8 years agoanv/meta: Assert correct sample counts for blit funcs
Chad Versace [Thu, 21 Jan 2016 01:03:29 +0000 (17:03 -0800)]
anv/meta: Assert correct sample counts for blit funcs

Add assertions to:
    anv_CmdBlitImage
    anv_CmdCopyImage
    anv_CmdCopyImageToBuffer
    anv_CmdCopyBufferToImage

8 years agoanv: Add anv_image::samples
Chad Versace [Thu, 21 Jan 2016 00:34:23 +0000 (16:34 -0800)]
anv: Add anv_image::samples

It's set but not yet used.

8 years agoanv: Use isl_device_get_sample_counts()
Chad Versace [Thu, 21 Jan 2016 00:04:28 +0000 (16:04 -0800)]
anv: Use isl_device_get_sample_counts()

Use it in vkGetPhysicalDeviceProperties.

8 years agoisl: Add func isl_device_get_sample_counts()
Chad Versace [Wed, 20 Jan 2016 23:53:54 +0000 (15:53 -0800)]
isl: Add func isl_device_get_sample_counts()

8 years agogen8/state: Remove SKL special-casing for MinimumArrayElement
Nanley Chery [Fri, 22 Jan 2016 23:07:12 +0000 (15:07 -0800)]
gen8/state: Remove SKL special-casing for MinimumArrayElement

MinimumArrayElement carries the same meaning for BDW and SKL.
Suggested by Jason.

No regressions in dEQP-VK.pipeline.image.view_type.cube_array.*
Fixes a number of cube tests, including cube_array_base_slice
and cube_base_slice tests.

8 years agoanv/state: Dedupe code for lowering surface format
Chad Versace [Fri, 22 Jan 2016 22:48:36 +0000 (14:48 -0800)]
anv/state: Dedupe code for lowering surface format

Add helper anv_surface_format().

8 years agoanv/meta: Set sampler type and instruction arrayness consistently in blit shader.
Francisco Jerez [Fri, 22 Jan 2016 23:57:02 +0000 (15:57 -0800)]
anv/meta: Set sampler type and instruction arrayness consistently in blit shader.

8 years agoanv/meta: Fix meta blit fragment shader for 1D arrays.
Francisco Jerez [Fri, 22 Jan 2016 23:57:01 +0000 (15:57 -0800)]
anv/meta: Fix meta blit fragment shader for 1D arrays.

8 years agogenX/state: Set CubeSurfaceControlMode to OVERRIDE
Jason Ekstrand [Sat, 23 Jan 2016 00:34:13 +0000 (16:34 -0800)]
genX/state: Set CubeSurfaceControlMode to OVERRIDE

This makes it act like the address mode is set to TEXCOORDMODE_CUBE
whenever this sampler is combined with a cube surface.  This *should* be
what we need for Vulkan.  Interestingly, the PRM contains a programming
note for this field that says simply, "This field must be set to
CUBECTRLMODE_PROGRAMMED".  However, emprical evidence suggests that it does
what the PRM says it does and OVERRIDE is just fine.

8 years agogen8/state: Divide depth by 6 for cube maps for GEN8
Jason Ekstrand [Sat, 23 Jan 2016 00:13:36 +0000 (16:13 -0800)]
gen8/state: Divide depth by 6 for cube maps for GEN8

For Broadwell cube maps, MinimumArrayElement is in terms of 2d slices (a
multiple of 6) but Depth is in terms of whole cubes.

8 years agogen8_state: Enable all cube faces
Nanley Chery [Fri, 22 Jan 2016 20:17:25 +0000 (12:17 -0800)]
gen8_state: Enable all cube faces

These fields are ignored for non-cube surfaces. For cube surfaces
these fields should be enabled when using TEXCOORDMODE_CLAMP and
TEXCOORDMODE_CUBE.

TODO: Determine if these are the only two modes used in Vulkan.

8 years agoisl/format_layout: R11G11B10_FLOAT is unsigned
Jason Ekstrand [Fri, 22 Jan 2016 19:57:49 +0000 (11:57 -0800)]
isl/format_layout: R11G11B10_FLOAT is unsigned

8 years agoanv/image: Move common code to anv_image.c
Jason Ekstrand [Fri, 22 Jan 2016 19:57:01 +0000 (11:57 -0800)]
anv/image: Move common code to anv_image.c

8 years agoanv/state: Refactor surface state setup into a "fill" function
Jason Ekstrand [Fri, 22 Jan 2016 19:40:56 +0000 (11:40 -0800)]
anv/state: Refactor surface state setup into a "fill" function

8 years agoanv/state: Add missing clflushes for storage image surface state.
Francisco Jerez [Fri, 22 Jan 2016 03:21:35 +0000 (19:21 -0800)]
anv/state: Add missing clflushes for storage image surface state.

8 years agoanv/state: Factor out surface state calculation from genX_image_view_init.
Francisco Jerez [Fri, 22 Jan 2016 03:21:34 +0000 (19:21 -0800)]
anv/state: Factor out surface state calculation from genX_image_view_init.

Some fields of the surface state template were dependent on the
surface type, which is dependent on the usage of the image view, which
wasn't known until the bottom of the function after the template had
been constructed.  This caused failures in all image load/store CTS
tests using cubemaps.  Refactor the surface state calculation into a
function that is called once for each required usage.

8 years agoi965/nir: Temporariliy disable mul+add fusion
Jason Ekstrand [Fri, 22 Jan 2016 19:09:24 +0000 (11:09 -0800)]
i965/nir: Temporariliy disable mul+add fusion

We don't want to do this in the long-run but it's needed for passing the
NoContraction tests at the moment.  Eventually, we want to plumb this
through NIR properly.

8 years agoisl: Fix indentation of isl_format_layout comment
Chad Versace [Fri, 22 Jan 2016 17:48:11 +0000 (09:48 -0800)]
isl: Fix indentation of isl_format_layout comment

8 years agoisl/tests: Give tests less cryptic names
Chad Versace [Fri, 22 Jan 2016 17:46:48 +0000 (09:46 -0800)]
isl/tests: Give tests less cryptic names

8 years agoisl: Fix isl_surf_get_image_offset_sa for gen4_3d layout
Chad Versace [Fri, 22 Jan 2016 16:32:00 +0000 (08:32 -0800)]
isl: Fix isl_surf_get_image_offset_sa for gen4_3d layout

Bug found by unit test
test_bdw_3d_r8g8b8a8_unorm_256x256x256_levels09_tiley0.

8 years agoisl/tests: Add test for bdw 3d surface
Chad Versace [Fri, 22 Jan 2016 16:31:29 +0000 (08:31 -0800)]
isl/tests: Add test for bdw 3d surface

test_bdw_3d_r8g8b8a8_unorm_256x256x256_levels09_tiley0

Currently fails.

8 years agoisl/tests: Remove copy-paste assertion
Chad Versace [Fri, 22 Jan 2016 15:17:34 +0000 (07:17 -0800)]
isl/tests: Remove copy-paste assertion

8 years agoisl/tests: Fix build
Chad Versace [Fri, 22 Jan 2016 15:17:06 +0000 (07:17 -0800)]
isl/tests: Fix build

isl_device_init() acquired a new param for bit6 swizzling.

8 years agoanv/batch_chain: Fix patching up of block pool relocations on Gen8+.
Francisco Jerez [Thu, 21 Jan 2016 22:14:07 +0000 (14:14 -0800)]
anv/batch_chain: Fix patching up of block pool relocations on Gen8+.

Relocations are 64 bits on Gen8+.  Most CTS tests that send
non-trivial work to the GPU would fail when run from a single deqp-vk
invocation because they were effectively relying on reloc presumed
offsets to be wrong so the kernel would come and apply relocations
correctly.

8 years agonir/spirv: Ignore cull distance
Jason Ekstrand [Fri, 22 Jan 2016 00:03:06 +0000 (16:03 -0800)]
nir/spirv: Ignore cull distance

8 years agonir/lower_system_values: Use the correct invication id for CS
Jason Ekstrand [Fri, 22 Jan 2016 00:00:47 +0000 (16:00 -0800)]
nir/lower_system_values: Use the correct invication id for CS

8 years agonir/spirv: Properly assign locations to split structures
Jason Ekstrand [Thu, 21 Jan 2016 20:41:45 +0000 (12:41 -0800)]
nir/spirv: Properly assign locations to split structures

8 years agonir/spirv: Improve handling of variable loads and copies
Jason Ekstrand [Thu, 21 Jan 2016 18:58:53 +0000 (10:58 -0800)]
nir/spirv: Improve handling of variable loads and copies

Before we were asuming that a deref would either be something in a block or
something that we could pass off to NIR directly.  However, it is possible
that someone would choose to load/store/copy a split structure all in one
go.  We need to be able to handle that.

8 years agonir/spirv: Make vectors a proper array time with an array_element
Jason Ekstrand [Thu, 21 Jan 2016 18:58:03 +0000 (10:58 -0800)]
nir/spirv: Make vectors a proper array time with an array_element

This makes dealing with single-component derefs easier

8 years agonir/spirv: Rework access chains a bit to allow for literals
Jason Ekstrand [Thu, 21 Jan 2016 18:20:50 +0000 (10:20 -0800)]
nir/spirv: Rework access chains a bit to allow for literals

This makes them much easier to construct because you can also just specify
a literal number and it doesn't have to be a valid SPIR-V id.

8 years agovtn/variables: Compact local loads/stores into one function
Jason Ekstrand [Thu, 21 Jan 2016 16:53:04 +0000 (08:53 -0800)]
vtn/variables: Compact local loads/stores into one function

This is similar to what we did for block loads/stores.

8 years agonir/spirv: Add an actual variable struct to spirv_to_nir
Jason Ekstrand [Thu, 21 Jan 2016 10:09:38 +0000 (02:09 -0800)]
nir/spirv: Add an actual variable struct to spirv_to_nir

This allows us, among other things, to do structure splitting on-the-fly to
more correctly handle input/output structs.

8 years agonir/spirv: Split variable handling out into its own file
Jason Ekstrand [Thu, 21 Jan 2016 01:40:49 +0000 (17:40 -0800)]
nir/spirv: Split variable handling out into its own file

It's 1300 lines all by itself and it will only grow.

8 years agonir/spirv: Rework access chains
Jason Ekstrand [Thu, 21 Jan 2016 01:11:55 +0000 (17:11 -0800)]
nir/spirv: Rework access chains

Previously, we were creating nir_deref's immediately.  Now, instead, we
have an intermediate vtn_access_chain structure.  While a little more
awkward initially, this will allow us to more easily do structure splitting
on-the-fly.

8 years agonir/spirv: Implement ModfStruct opcode.
Kenneth Graunke [Thu, 21 Jan 2016 22:56:34 +0000 (14:56 -0800)]
nir/spirv: Implement ModfStruct opcode.

8 years agonir/spirv: Delete stray fmod remnants.
Kenneth Graunke [Thu, 21 Jan 2016 22:53:44 +0000 (14:53 -0800)]
nir/spirv: Delete stray fmod remnants.

Jason left these stray code fragments in
22804de110b97dce1415318fd02c1003e16ef14a.

8 years agofreedreno/a4xx: Add support for adreno 430
cstout [Sat, 12 Dec 2015 00:58:45 +0000 (16:58 -0800)]
freedreno/a4xx: Add support for adreno 430

Signed-off-by: Rob Clark <robclark@freedesktop.org>
8 years agofreedreno: make opc array static const
Christian Gmeiner [Wed, 20 Jan 2016 21:11:52 +0000 (22:11 +0100)]
freedreno: make opc array static const

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Signed-off-by: Rob Clark <robclark@freedesktop.org>
8 years agofreedreno: implement emit_string_marker
Rob Clark [Mon, 10 Aug 2015 16:11:13 +0000 (12:11 -0400)]
freedreno: implement emit_string_marker

Writes string to cmdstream in payload of a no-op packet.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
8 years agogallium: add GREMEDY_string_marker
Rob Clark [Mon, 10 Aug 2015 15:41:29 +0000 (11:41 -0400)]
gallium: add GREMEDY_string_marker

Since the GREMEDY extensions are normally only exposed by the gremedy
debugger (and could possibly trigger debug paths in the app), we don't
expose the extension by default, but instead only with
ST_DEBUG=gremedy.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agomesa: wire up EmitStringMarker for KHR_debug
Rob Clark [Sat, 5 Dec 2015 16:32:25 +0000 (11:32 -0500)]
mesa: wire up EmitStringMarker for KHR_debug

The extension spec[1] describes DEBUG_TYPE_MARKER as "Annotation of the
command stream".  So for DEBUG_TYPE_MARKER, also pass the buf to the
driver's EmitStringMarker() to be inserted in the command stream.

[1] https://www.opengl.org/registry/specs/KHR/debug.txt

Signed-off-by: Rob Clark <robclark@freedesktop.org>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agomesa: add GREMEDY_string_marker
Rob Clark [Mon, 10 Aug 2015 14:37:53 +0000 (10:37 -0400)]
mesa: add GREMEDY_string_marker

Signed-off-by: Rob Clark <robclark@freedesktop.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
8 years agovk: Do render cache flush for GEN8+
Kristian Høgsberg Kristensen [Thu, 21 Jan 2016 22:14:01 +0000 (14:14 -0800)]
vk: Do render cache flush for GEN8+

This is needed for SKL as well.

8 years agovk: Emit surface state base address before renderpass
Kristian Høgsberg Kristensen [Thu, 21 Jan 2016 21:52:41 +0000 (13:52 -0800)]
vk: Emit surface state base address before renderpass

If we're continuing a render pass, make sure we don't emit the depth and
stencil buffer addresses before we set the state base addresses.

Fixes crucible func.cmd-buffer.small-secondaries