mesa.git
9 years agovk/test: Use the glsl_scraper for building shaders
Jason Ekstrand [Thu, 21 May 2015 18:59:29 +0000 (11:59 -0700)]
vk/test: Use the glsl_scraper for building shaders

9 years agovk/glsl_scraper: Use the LunarG back-door for GLSL source
Jason Ekstrand [Thu, 21 May 2015 19:19:24 +0000 (12:19 -0700)]
vk/glsl_scraper: Use the LunarG back-door for GLSL source

9 years agovk/glsl_scraper: Use a fake GLSL version that glslang will accept
Jason Ekstrand [Thu, 21 May 2015 18:40:24 +0000 (11:40 -0700)]
vk/glsl_scraper: Use a fake GLSL version that glslang will accept

9 years agovk: Bake the GLSL_VK_SHADER macro into the scraper output file
Jason Ekstrand [Thu, 21 May 2015 18:31:43 +0000 (11:31 -0700)]
vk: Bake the GLSL_VK_SHADER macro into the scraper output file

9 years agovk/meta: Use glsl_scraper for our GLSL source
Jason Ekstrand [Tue, 19 May 2015 18:28:08 +0000 (11:28 -0700)]
vk/meta: Use glsl_scraper for our GLSL source

We are not yet using SPIR-V for meta but this is a first step.

9 years agovk: More out-of-tree build fixes
Jason Ekstrand [Thu, 21 May 2015 18:28:40 +0000 (11:28 -0700)]
vk: More out-of-tree build fixes

9 years agovk: Fix for out-of-tree builds
Jason Ekstrand [Thu, 21 May 2015 17:23:18 +0000 (10:23 -0700)]
vk: Fix for out-of-tree builds

9 years agovk: Remove render pass stub call
Kristian Høgsberg [Wed, 20 May 2015 23:42:11 +0000 (16:42 -0700)]
vk: Remove render pass stub call

This isn't really a stub.

9 years agovk: Add WSI implementation
Kristian Høgsberg [Sat, 16 May 2015 05:04:52 +0000 (22:04 -0700)]
vk: Add WSI implementation

9 years agovk: Add debug stubs
Kristian Høgsberg [Sat, 16 May 2015 05:04:15 +0000 (22:04 -0700)]
vk: Add debug stubs

9 years agovk: Mark remaining unsupported formats as such
Kristian Høgsberg [Wed, 20 May 2015 21:38:11 +0000 (14:38 -0700)]
vk: Mark remaining unsupported formats as such

9 years agovk: Mark VK_FORMAT_UNDEFINED as 1 cpp, 1 channel
Kristian Høgsberg [Wed, 20 May 2015 21:36:11 +0000 (14:36 -0700)]
vk: Mark VK_FORMAT_UNDEFINED as 1 cpp, 1 channel

9 years agovk: Stream surface state instead of using the surface pool
Kristian Høgsberg [Tue, 19 May 2015 21:14:24 +0000 (14:14 -0700)]
vk: Stream surface state instead of using the surface pool

Since the binding table pointer is only 16 bits, we can only have 64kb
of binding table state allocated at any given time. With a block size of
1kb, that amounts to just 64 command buffers, which is not enough.

9 years agovk: Use surface_format_info from dri driver for vkGetFormatInfo
Kristian Høgsberg [Tue, 19 May 2015 05:08:55 +0000 (22:08 -0700)]
vk: Use surface_format_info from dri driver for vkGetFormatInfo

9 years agovk: Fix result of vkCreateInstance
Chad Versace [Thu, 21 May 2015 02:51:10 +0000 (19:51 -0700)]
vk: Fix result of vkCreateInstance

When fill_physical_device() fails, don't return VK_SUCCESS.

9 years agovk/compiler: Add shader language detection
Jason Ekstrand [Thu, 21 May 2015 00:05:38 +0000 (17:05 -0700)]
vk/compiler: Add shader language detection

This commit adds support for the LunarG GLSL back-door as well as detecting
regular GLSL and SPIR-V.  The SPIR-V path doesn't exist yet, so that will
cause an assert-fail.

9 years agovk/test: Add a test for testing buffer copies
Jason Ekstrand [Wed, 20 May 2015 22:11:08 +0000 (15:11 -0700)]
vk/test: Add a test for testing buffer copies

9 years agovk/meta: Add support for copying arbitrary size buffers
Jason Ekstrand [Wed, 20 May 2015 23:17:59 +0000 (16:17 -0700)]
vk/meta: Add support for copying arbitrary size buffers

9 years agovk/meta: Use the biggest format possible for buffer copies
Jason Ekstrand [Wed, 20 May 2015 22:38:11 +0000 (15:38 -0700)]
vk/meta: Use the biggest format possible for buffer copies

This should substantially improve throughput of buffer copies.

9 years agovk/meta: Fix buffer copy extents
Jason Ekstrand [Wed, 20 May 2015 22:11:21 +0000 (15:11 -0700)]
vk/meta: Fix buffer copy extents

9 years agovk/meta: Use texture() instead of texture2D()
Jason Ekstrand [Tue, 19 May 2015 19:43:13 +0000 (12:43 -0700)]
vk/meta: Use texture() instead of texture2D()

9 years agovk: Use binding instead of index in uniform layout qualifiers
Jason Ekstrand [Tue, 19 May 2015 19:42:21 +0000 (12:42 -0700)]
vk: Use binding instead of index in uniform layout qualifiers

This more closely matches what the Vulkan docs say to do.

9 years agovk/glsl_scraper: Add a --glsl-only option
Jason Ekstrand [Tue, 19 May 2015 18:27:20 +0000 (11:27 -0700)]
vk/glsl_scraper: Add a --glsl-only option

9 years agovk/glsl_scraper: Use the line number from the end of the macro
Jason Ekstrand [Tue, 19 May 2015 18:26:35 +0000 (11:26 -0700)]
vk/glsl_scraper: Use the line number from the end of the macro

We used to use the line number from the start of the macro but this doesn't
seem to match the c preprocessor

9 years agovk/glsl_scraper: Don't open files until needed
Jason Ekstrand [Tue, 19 May 2015 17:44:59 +0000 (10:44 -0700)]
vk/glsl_scraper: Don't open files until needed

This prevents us from writing an empty file when the compile failed.

9 years agovk: Call finish for binding table state stream
Kristian Høgsberg [Tue, 19 May 2015 04:11:40 +0000 (21:11 -0700)]
vk: Call finish for binding table state stream

9 years agovk/meta: Use the new *view_init functions and stack-allocated views
Jason Ekstrand [Tue, 19 May 2015 03:56:58 +0000 (20:56 -0700)]
vk/meta: Use the new *view_init functions and stack-allocated views

This should save us a good deal of the leakage that meta currently has.

9 years agovk/image: Factor view creation out into separate *_init functions
Jason Ekstrand [Tue, 19 May 2015 03:42:03 +0000 (20:42 -0700)]
vk/image: Factor view creation out into separate *_init functions

The *_init functions work basically the same as the Vulkan entrypoints
except that they act on an already-created view and take an optional
command buffer option.  If a command buffer is given, the surface state is
allocated out of the command buffer's state stream.

9 years agoRevert "vk/allocator: Don't use memfd when valgrind is detected"
Jason Ekstrand [Tue, 19 May 2015 03:22:51 +0000 (20:22 -0700)]
Revert "vk/allocator: Don't use memfd when valgrind is detected"

This reverts commit b6ab076d6b7dd91ce0dda8741ba974b2402fa726.

It turns out setting USE_MEMFD to 0 is really bad because it means we can't
resize the pool.  Besides, valgrind SVN handles memfd so we really don't
need this fallback for valgrind anymore.

9 years agovk: Use a separate block pool and state stream for binding tables
Jason Ekstrand [Tue, 19 May 2015 02:56:32 +0000 (19:56 -0700)]
vk: Use a separate block pool and state stream for binding tables

The binding table pointers packet only allows for a 16-bit binding table
address so all binding tables have to be in the first 64 KB of the surface
state BO.  We solve this by adding a slave block pool that pulls off the
first 64 KB worth of blocks and reserves them for binding tables.

9 years agovk/allocator: Add a concept of a slave block pool
Jason Ekstrand [Tue, 19 May 2015 02:55:34 +0000 (19:55 -0700)]
vk/allocator: Add a concept of a slave block pool

We probably need a better name but this will do for now.

9 years agovk/test: Add test that prints format features
Kristian Høgsberg [Tue, 19 May 2015 03:44:37 +0000 (20:44 -0700)]
vk/test: Add test that prints format features

9 years agovk/test: Test timestamps and occlusion queries
Kristian Høgsberg [Tue, 19 May 2015 00:05:36 +0000 (17:05 -0700)]
vk/test: Test timestamps and occlusion queries

9 years agovk: Make timestamp command work correctly
Kristian Høgsberg [Tue, 19 May 2015 00:04:32 +0000 (17:04 -0700)]
vk: Make timestamp command work correctly

This was using the wrong timestamp register and needs to write a 64 bit
value.

9 years agovk: Make occlusion query work, both copy and get functions
Kristian Høgsberg [Tue, 19 May 2015 00:03:58 +0000 (17:03 -0700)]
vk: Make occlusion query work, both copy and get functions

9 years agovk: Update generated header files
Kristian Høgsberg [Tue, 19 May 2015 00:00:52 +0000 (17:00 -0700)]
vk: Update generated header files

This fixes a problem where register addresses where incorrectly shifted.

9 years agovk: Only fill render targets for meta clear
Kristian Høgsberg [Mon, 18 May 2015 17:39:14 +0000 (10:39 -0700)]
vk: Only fill render targets for meta clear

Clear inherits the render targets from the current render pass. This
means we need to fill out the binding table after switching to meta
bindings. However, meta copies etc happen outside a render pass and
break when we try to fill in the render targets. This change fills the
render targets only for meta clear.

9 years agovk/pipeline: Use a state_stream for storing programs
Jason Ekstrand [Mon, 18 May 2015 22:47:28 +0000 (15:47 -0700)]
vk/pipeline: Use a state_stream for storing programs

Previously, we were effectively using a state_stream, it was just
hand-rolled based on a block pool.  Now we actually use the data structure.

9 years agovk/allocator: Add support for valgrind tracking of state pools and streams
Jason Ekstrand [Mon, 18 May 2015 19:06:02 +0000 (12:06 -0700)]
vk/allocator: Add support for valgrind tracking of state pools and streams

We leave the block pool untracked so that reads/writes to freed blocks
will get caught and do the tracking at the state pool/stream level.  We
have to do a few extra gymnastics for streams because valgrind works in
terms of poitners and we work in terms of separate map and offset.
Fortunately, the users of the state pool and stream should always be using
the map pointer provided in the anv_state structure.  We just have to
track, per block, the map that was used when we initially got the block.
Then we can make sure we always use that map and valgrind should stay
happy.

9 years agovk/allocator: Don't use memfd when valgrind is detected
Jason Ekstrand [Mon, 18 May 2015 22:58:02 +0000 (15:58 -0700)]
vk/allocator: Don't use memfd when valgrind is detected

9 years agovk/allocator: Assert that block_pool_grow succeeds
Jason Ekstrand [Mon, 18 May 2015 22:46:42 +0000 (15:46 -0700)]
vk/allocator: Assert that block_pool_grow succeeds

9 years agovk/gem: VG_CLEAR the padding for the gem_mmap struct
Jason Ekstrand [Mon, 18 May 2015 19:05:17 +0000 (12:05 -0700)]
vk/gem: VG_CLEAR the padding for the gem_mmap struct

9 years agovk/meta: Rework the indentation style
Jason Ekstrand [Mon, 18 May 2015 17:41:09 +0000 (10:41 -0700)]
vk/meta: Rework the indentation style

No functional change.

9 years agovk: Provide more realistic values for device info
Kristian Høgsberg [Mon, 18 May 2015 17:17:53 +0000 (10:17 -0700)]
vk: Provide more realistic values for device info

9 years agovk: Use a temporary buffer for formatting in finishme
Kristian Høgsberg [Mon, 18 May 2015 16:05:11 +0000 (09:05 -0700)]
vk: Use a temporary buffer for formatting in finishme

This is more likely to avoid breaking up the message when racing with
other threads.

9 years agovk/meta: Add an initial implementation of vkCmdCopyBuffer
Jason Ekstrand [Mon, 18 May 2015 16:42:09 +0000 (09:42 -0700)]
vk/meta: Add an initial implementation of vkCmdCopyBuffer

Compile-tested only

9 years agovk/meta: Add an initial implementation of vkCmdCopyBufferToImage
Jason Ekstrand [Mon, 18 May 2015 16:16:04 +0000 (09:16 -0700)]
vk/meta: Add an initial implementation of vkCmdCopyBufferToImage

Compile-tested only

9 years agovk/meta: Add an initial implementation of vkCmdBlitImage
Jason Ekstrand [Mon, 18 May 2015 16:06:06 +0000 (09:06 -0700)]
vk/meta: Add an initial implementation of vkCmdBlitImage

Compile-tested only

9 years agovk/meta: Add an initial implementation of vkCmdCopyImage
Jason Ekstrand [Mon, 18 May 2015 16:03:27 +0000 (09:03 -0700)]
vk/meta: Add an initial implementation of vkCmdCopyImage

Compile-tested only

9 years agovk/gem: Set the gem_mmap.flags parameter to 0 if it exists
Jason Ekstrand [Mon, 18 May 2015 16:59:08 +0000 (09:59 -0700)]
vk/gem: Set the gem_mmap.flags parameter to 0 if it exists

9 years agovk/gem: Only VK_CLEAR the addr_ptr in gen_mmap
Jason Ekstrand [Mon, 18 May 2015 16:57:12 +0000 (09:57 -0700)]
vk/gem: Only VK_CLEAR the addr_ptr in gen_mmap

9 years agovk: Add a logger wrapper for the generated entrypoint
Kristian Høgsberg [Mon, 18 May 2015 15:52:22 +0000 (08:52 -0700)]
vk: Add a logger wrapper for the generated entrypoint

9 years agovk/gem: Just return -1 from anv_gem_wait() on error
Kristian Høgsberg [Mon, 18 May 2015 15:50:56 +0000 (08:50 -0700)]
vk/gem: Just return -1 from anv_gem_wait() on error

We were returning -errno, unlike all the other gem functions.

9 years agovk: Fix vkGetOjectInfo return values
Kristian Høgsberg [Mon, 18 May 2015 15:50:04 +0000 (08:50 -0700)]
vk: Fix vkGetOjectInfo return values

We weren't properly returning the allocation count.

9 years agovk: Implement fences
Kristian Høgsberg [Mon, 18 May 2015 15:49:15 +0000 (08:49 -0700)]
vk: Implement fences

This basic implementation uses a throw-away bo for synchronization.

9 years agovk/meta: Use anv_* internal entrypoints
Kristian Høgsberg [Mon, 18 May 2015 02:30:27 +0000 (19:30 -0700)]
vk/meta: Use anv_* internal entrypoints

9 years agovk: Implement allocation count query
Kristian Høgsberg [Mon, 18 May 2015 02:25:28 +0000 (19:25 -0700)]
vk: Implement allocation count query

9 years agovk: Change pData/pDataSize semantics
Kristian Høgsberg [Mon, 18 May 2015 02:22:52 +0000 (19:22 -0700)]
vk: Change pData/pDataSize semantics

We now always copy the entire struct unless pData is NULL and
unconditionally write back the struct size. It's not clear this is
useful if the structs may grow over time, but it seems to be the
expected behaviour for now.

9 years agovk: Return VK_SUCCESS from vkAllocDescriptorSets
Kristian Høgsberg [Mon, 18 May 2015 01:39:12 +0000 (18:39 -0700)]
vk: Return VK_SUCCESS from vkAllocDescriptorSets

This should've been returning VK_SUCCESS all along.

9 years agovk: Return VK_SUCCESS for all descriptor pool entry points
Kristian Høgsberg [Mon, 18 May 2015 01:38:34 +0000 (18:38 -0700)]
vk: Return VK_SUCCESS for all descriptor pool entry points

9 years agovk: Start Implementing vkGetFormatInfo()
Kristian Høgsberg [Mon, 18 May 2015 04:35:34 +0000 (21:35 -0700)]
vk: Start Implementing vkGetFormatInfo()

We move the format table and vkGetFormatInfo to their own file in the
process.

9 years agovk: Add script for generating ifunc entry points
Kristian Høgsberg [Sun, 17 May 2015 23:33:48 +0000 (16:33 -0700)]
vk: Add script for generating ifunc entry points

This lets us generate a hash table for vkGetProcAddress and lets us call
public functions internally without the public entrypoint overhead.

9 years agovk: Fix vulkan header inconsistency
Kristian Høgsberg [Sun, 17 May 2015 23:40:10 +0000 (16:40 -0700)]
vk: Fix vulkan header inconsistency

The function pointer typedef and the function prototype for
vkCmdClearColorImage() didn't agree. Fix the typedef to match the
prototype.

9 years agovk: Add function pointer typedef for intel extension
Kristian Høgsberg [Sun, 17 May 2015 23:39:20 +0000 (16:39 -0700)]
vk: Add function pointer typedef for intel extension

Also guard function prototype by VK_PROTOTYPES.

9 years agovk: Add missing VKAPI for vkQueueRemoveMemReferences
Kristian Høgsberg [Sat, 16 May 2015 05:05:09 +0000 (22:05 -0700)]
vk: Add missing VKAPI for vkQueueRemoveMemReferences

9 years agoMerge remote-tracking branch 'fdo-personal/wip/nir-vtn' into vulkan
Jason Ekstrand [Sat, 16 May 2015 19:43:16 +0000 (12:43 -0700)]
Merge remote-tracking branch 'fdo-personal/wip/nir-vtn' into vulkan

This adds the SPIR-V -> NIR translator.

9 years agonir/spirv: Don't assert that the current block is empty
Jason Ekstrand [Sat, 16 May 2015 19:34:32 +0000 (12:34 -0700)]
nir/spirv: Don't assert that the current block is empty

It's possible that someone will give us SPIR-V code in which someone
needlessly branches to new blocks.  We should handle that ok now.

9 years agonir/spirv: Add initial support for samplers
Jason Ekstrand [Sat, 16 May 2015 19:34:15 +0000 (12:34 -0700)]
nir/spirv: Add initial support for samplers

9 years agonir/spirv: Move Exp and Log to the list of currently unhandled ALU ops
Jason Ekstrand [Sat, 16 May 2015 19:33:29 +0000 (12:33 -0700)]
nir/spirv: Move Exp and Log to the list of currently unhandled ALU ops

NIR doesn't have the native opcodes for them anymore

9 years agonir/types: Add support for sampler types
Jason Ekstrand [Sat, 16 May 2015 19:32:58 +0000 (12:32 -0700)]
nir/types: Add support for sampler types

9 years agonir/spirv: Make the global constants in spirv.h static
Jason Ekstrand [Wed, 6 May 2015 22:36:54 +0000 (15:36 -0700)]
nir/spirv: Make the global constants in spirv.h static

I've been promissed in a bug that this will be fixed in a future version of
the header.  However, in the interest of my branch building, I'm adding
these changes in myself for the moment.

9 years agonir/spirv: Handle jump-to-loop in a more general way
Jason Ekstrand [Wed, 6 May 2015 22:33:21 +0000 (15:33 -0700)]
nir/spirv: Handle jump-to-loop in a more general way

9 years agonir/spirv: Handle boolean uniforms correctly
Jason Ekstrand [Wed, 6 May 2015 19:54:02 +0000 (12:54 -0700)]
nir/spirv: Handle boolean uniforms correctly

9 years agonir/spirv: Handle control-flow with loops
Jason Ekstrand [Wed, 6 May 2015 19:37:10 +0000 (12:37 -0700)]
nir/spirv: Handle control-flow with loops

9 years agonir/spirv: Set a name on temporary variables
Jason Ekstrand [Wed, 6 May 2015 19:36:31 +0000 (12:36 -0700)]
nir/spirv: Set a name on temporary variables

9 years agonir/spirv: Use the correct length for copying string literals
Jason Ekstrand [Wed, 6 May 2015 19:36:09 +0000 (12:36 -0700)]
nir/spirv: Use the correct length for copying string literals

9 years agonir/spirv: Make vtn_ssa_value handle constants as well as ssa values
Jason Ekstrand [Wed, 6 May 2015 19:35:30 +0000 (12:35 -0700)]
nir/spirv: Make vtn_ssa_value handle constants as well as ssa values

9 years agonir/spirv: Add initial support for GLSL 4.50 builtins
Jason Ekstrand [Mon, 4 May 2015 22:17:56 +0000 (15:17 -0700)]
nir/spirv: Add initial support for GLSL 4.50 builtins

9 years agonir/spirv: Split the core datastructures into a header file
Jason Ekstrand [Mon, 4 May 2015 19:25:09 +0000 (12:25 -0700)]
nir/spirv: Split the core datastructures into a header file

9 years agonir/spirv: Use the builder for all instructions
Jason Ekstrand [Mon, 4 May 2015 19:12:23 +0000 (12:12 -0700)]
nir/spirv: Use the builder for all instructions

We don't actually use it to create all the instructions but we do use it
for insertion always.  This should make things far more consistent for
implementing extended instructions.

9 years agonir/spirv: Add support for a bunch of ALU operations
Jason Ekstrand [Mon, 4 May 2015 19:04:02 +0000 (12:04 -0700)]
nir/spirv: Add support for a bunch of ALU operations

9 years agonir/spirv: Add support for indirect array accesses
Jason Ekstrand [Mon, 4 May 2015 19:02:57 +0000 (12:02 -0700)]
nir/spirv: Add support for indirect array accesses

9 years agonir/spirv: Explicitly type constants and SSA values
Jason Ekstrand [Mon, 4 May 2015 19:02:24 +0000 (12:02 -0700)]
nir/spirv: Explicitly type constants and SSA values

9 years agonir/spirv: Handle OpBranchConditional
Jason Ekstrand [Mon, 4 May 2015 17:23:09 +0000 (10:23 -0700)]
nir/spirv: Handle OpBranchConditional

We do control-flow handling as a two-step process.  The first step is to
walk the instructions list and record various information about blocks and
functions.  This is where the acutal nir_function_overload objects get
created.  We also record the start/stop instruction for each block.  Then
a second pass walks over each of the functions and over the blocks in each
function in a way that's NIR-friendly and actually parses the instructions.

9 years agonir/spirv: Add a helper for getting a value as an SSA value
Jason Ekstrand [Mon, 4 May 2015 17:22:52 +0000 (10:22 -0700)]
nir/spirv: Add a helper for getting a value as an SSA value

9 years agonir/spirv: Split instruction handling into preamble and body sections
Jason Ekstrand [Fri, 1 May 2015 21:00:57 +0000 (14:00 -0700)]
nir/spirv: Split instruction handling into preamble and body sections

9 years agonir/spirv: Implement load/store instructiosn
Jason Ekstrand [Fri, 1 May 2015 18:28:18 +0000 (11:28 -0700)]
nir/spirv: Implement load/store instructiosn

9 years agonir: Add a helper for getting the tail of a deref chain
Jason Ekstrand [Mon, 4 May 2015 17:19:24 +0000 (10:19 -0700)]
nir: Add a helper for getting the tail of a deref chain

9 years agonir/spirv: Actaully add variables to the funciton or shader
Jason Ekstrand [Fri, 1 May 2015 18:28:01 +0000 (11:28 -0700)]
nir/spirv: Actaully add variables to the funciton or shader

9 years agonir/spirv: Add a vtn_untyped_value helper
Jason Ekstrand [Fri, 1 May 2015 18:27:44 +0000 (11:27 -0700)]
nir/spirv: Add a vtn_untyped_value helper

9 years agonir/spirv: Use vtn_value in the types code and fix a off-by-one error
Jason Ekstrand [Fri, 1 May 2015 18:27:21 +0000 (11:27 -0700)]
nir/spirv: Use vtn_value in the types code and fix a off-by-one error

9 years agonir/types: Add an is_vector_or_scalar helper
Jason Ekstrand [Fri, 1 May 2015 18:26:40 +0000 (11:26 -0700)]
nir/types: Add an is_vector_or_scalar helper

9 years agonir/spirv: Add support for deref chains
Jason Ekstrand [Thu, 30 Apr 2015 03:56:36 +0000 (20:56 -0700)]
nir/spirv: Add support for deref chains

9 years agonir/types: Add a scalar type constructor
Jason Ekstrand [Thu, 30 Apr 2015 03:56:17 +0000 (20:56 -0700)]
nir/types: Add a scalar type constructor

9 years agonir/spirv: Add support for OpLabel
Jason Ekstrand [Thu, 30 Apr 2015 03:19:34 +0000 (20:19 -0700)]
nir/spirv: Add support for OpLabel

9 years agonir/spirv: Add support for declaring functions
Jason Ekstrand [Thu, 30 Apr 2015 03:10:20 +0000 (20:10 -0700)]
nir/spirv: Add support for declaring functions

9 years agonir/types: Add accessors for function parameter/return types
Jason Ekstrand [Thu, 30 Apr 2015 03:09:36 +0000 (20:09 -0700)]
nir/types: Add accessors for function parameter/return types

9 years agonir/spirv: Add support for declaring variables
Jason Ekstrand [Thu, 30 Apr 2015 02:37:41 +0000 (19:37 -0700)]
nir/spirv: Add support for declaring variables

Deref chains and variable load/store operations are still missing.

9 years agonir/spirv: Add support for constants
Jason Ekstrand [Thu, 30 Apr 2015 01:14:11 +0000 (18:14 -0700)]
nir/spirv: Add support for constants

9 years agonir/spirv: Add basic support for types
Jason Ekstrand [Wed, 29 Apr 2015 21:36:01 +0000 (14:36 -0700)]
nir/spirv: Add basic support for types