Jason Ekstrand
cae8db6b7e
glsl/compiler: Move the error_no_memory stub to standalone_scaffolding.cpp
2015-05-16 11:16:32 -07:00
Jason Ekstrand
98452cd8ae
nir: Add the start of a SPIR-V to NIR translator
...
At the moment, it can handle the very basics of strings and can ignore
debug instructions. It also has basic support for decorations.
2015-05-16 11:16:32 -07:00
Jason Ekstrand
573ca4a4a7
nir: Import the revision 30 SPIR-V header from Khronos
2015-05-16 11:16:31 -07:00
Jason Ekstrand
057bef8a84
vk/device: Use bias rather than layers for computing binding table size
...
Because we statically use the first 8 binding table entries for render
targets, we need to create a table of size 8 + surfaces.
2015-05-16 10:42:53 -07:00
Jason Ekstrand
22e61c9da4
vk/meta: Make clear a no-op if no layers need clearing
...
Among other things, this prevents recursive meta.
2015-05-16 10:30:05 -07:00
Jason Ekstrand
120394ac92
vk/meta: Save and restore the old bindings pointer
...
If we don't do this then recursive meta is completely broken. What happens
is that the outer meta call may change the bindings pointer and the inner
meta call will change it again and, when it exits set it back to the
default. However, the outer meta call may be relying on it being left
alone so it uses the non-meta descriptor sets instead of its own.
2015-05-16 10:28:04 -07:00
Jason Ekstrand
4223de769e
vk/device: Simplify surface_count calculation
2015-05-16 10:23:09 -07:00
Jason Ekstrand
eb1952592e
vk/glsl_helpers: Fix GLSL_VK_SHADER with respect to commas
...
Previously, the GLSL_VK_SHADER macro didn't work if the shader contained
commas outside of parentheses due to the way the C preprocessor works.
This commit fixes this by making it variadic again and doing it correctly
this time.
2015-05-15 22:17:07 -07:00
Kristian Høgsberg
3b9f32e893
vk: Make cmd_buffer->bindings a pointer
...
This lets us save and restore efficiently by just moving the pointer to
a temporary bindings struct for meta.
2015-05-15 18:12:07 -07:00
Kristian Høgsberg
9540130c41
vk: Move vertex buffers into struct anv_bindings
2015-05-15 16:34:31 -07:00
Kristian Høgsberg
0cfc493775
vk: Fix GLSL_VK_SHADER macro
...
Stringify doesn't work with __ARGV__. The last macro argument swallows
up excess arguments and as such we can just stringify that.
2015-05-15 16:15:04 -07:00
Kristian Høgsberg
af45f4a558
vk: Fix warning from missing initializer
...
Struct initializers need to be { 0, } to zero out the variable they're
initializing.
2015-05-15 16:07:17 -07:00
Kristian Høgsberg
bf096c9ec3
vk: Build binding tables at bind descriptor time
...
This changes the way descriptor sets and layouts work so that we fill
out binding table contents at the time we bind descriptor sets. We
manipulate the binding table contents and sampler state in a shadow-copy
in anv_cmd_buffer. At draw time, we allocate the actual binding table
and sampler state and flush the anv_cmd_buffer copies.
2015-05-15 16:05:31 -07:00
Kristian Høgsberg
1f6c220b45
vk: Update the bind map length to reflect MAX_SETS
2015-05-15 15:22:29 -07:00
Kristian Høgsberg
b806e80e66
vk: Flip back to using memfd for the allocators
2015-05-15 15:22:29 -07:00
Kristian Høgsberg
0a775e1eab
vk: Rename dyn_state_pool to dynamic_state_pool
...
Given that we already tolerate surface_state_pool and the even longer
instruction_state_pool, there's no reason to arbitrarily abbreviate
dynamic.
2015-05-15 15:22:29 -07:00
Kristian Høgsberg
f5b0f1351f
vk: Consolidate image, buffer and color attachment views
...
These are all just surface state, offset and a bo.
2015-05-15 15:22:29 -07:00
Jason Ekstrand
41db8db0f2
vk: Add a GLSL scraper utility
...
This new utility, glsl_scraper.py scrapes C files for instances of the
GLSL_VK_SHADER macro, pulls out the shader source, and compiles it to
SPIR-V. The compilation is done using glslValidator. The result is then
placed into another C file as arrays of dwords that can be easiliy handed
to a Vulkan driver.
2015-05-14 19:18:57 -07:00
Jason Ekstrand
79ace6def6
vk/meta: Add a magic GLSL shader source macro
2015-05-14 19:07:34 -07:00
Jason Ekstrand
018a0c1741
vk/meta: Add a better comment about the VS for blits
2015-05-14 11:39:32 -07:00
Jason Ekstrand
8c92701a69
vk/test: Use VK_IMAGE_TILING_OPTIMAL for the render target
2015-05-13 22:27:38 -07:00
Jason Ekstrand
4fb8bddc58
vk/test: Do a copy of the RT into a linear buffer and write that to a PNG
2015-05-13 22:23:30 -07:00
Jason Ekstrand
bd5b76d6d0
vk/meta: Add the start of a blit implementation
...
Currently, we only implement CopyImageToBuffer
2015-05-13 22:23:30 -07:00
Jason Ekstrand
94b8c0b810
vk/pipeline: Default to a SamplerCount of 1 for PS
2015-05-13 22:23:30 -07:00
Jason Ekstrand
d3d4776202
vk/pipeline: Add an extra flag for force-disabling the vertex shader
...
This way we can pass in a vertex shader and yet have the pipeline emit an
empty 3DSTATE_VS packet. We need this for meta because we need to trick
the compiler into not deleting our inputs but at the same time disable the
VS so that we can use a rectlist. This should go away once we actually get
SPIR-V.
2015-05-13 22:23:30 -07:00
Jason Ekstrand
a1309c5255
vk/pass: Emit a flushing pipe control at the end of the pass
...
This is rather crude but it at least makes sure that all the render targets
get flushed at the end of the pass. We probably actually want to do
somthing based on image layout traansitions, but this will work for now.
2015-05-13 22:23:30 -07:00
Jason Ekstrand
07943656a7
vk/compiler: Set the binding table texture_start
...
This is by no means a complete solution to the binding table problems.
However, it does make texturing actually work. Before, we were texturing
from the render target since they were both starting at 0.
2015-05-13 22:23:30 -07:00
Jason Ekstrand
cd197181f2
vk/compiler: Zero the prog data
...
We use prog_data[stage] != NULL to determine whether or not we need to
clean up that stage. Make sure it default to NULL.
2015-05-13 22:22:59 -07:00
Jason Ekstrand
1f7dcf9d75
vk/image: Stash more information in images and views
2015-05-13 22:22:59 -07:00
Jason Ekstrand
43126388cd
vk/meta: Save/restore more stuff in cmd_buffer_restore
2015-05-13 22:22:59 -07:00
Chad Versace
50806e8dec
vk: Install headers
...
I need this for building a testsuite.
2015-05-13 17:49:26 -07:00
Kristian Høgsberg
83c7e1f1db
vk: Add support for sampler descriptors
2015-05-13 14:47:11 -07:00
Kristian Høgsberg
4f9eaf77a5
vk: Use a typesafe anv_descriptor struct
2015-05-13 14:47:11 -07:00
Kristian Høgsberg
5c9d77600b
vk: Create and bind a sampler in vk.c
2015-05-13 14:47:11 -07:00
Kristian Høgsberg
18acfa7301
vk: Fix copy-n-paste sType in vkCreateSampler
2015-05-13 14:47:11 -07:00
Kristian Høgsberg
a1ec789b0b
vk: Add a dynamic state stream to anv_cmd_buffer
...
We'll need this for sampler state.
2015-05-13 14:47:11 -07:00
Kristian Høgsberg
3f52c016fa
vk: Move struct anv_sampler to private.h
2015-05-13 14:47:11 -07:00
Kristian Høgsberg
a77229c979
vk: Allocate layout->count number of descriptors
...
layout->count is the number of descriptors the application
requested. layout->total is the number of entries we need across all
stages.
2015-05-13 14:47:11 -07:00
Kristian Høgsberg
a3fd136509
vk: Fill out sampler state from API values
2015-05-13 14:47:11 -07:00
Chad Versace
828817b88f
vk: Ignore vk executable
2015-05-13 12:05:38 -07:00
Kristian Høgsberg
2b7a060178
vk: Fix stale error handling in vkQueueSubmit
2015-05-12 14:38:58 -07:00
Kristian Høgsberg
cb986ef597
vk: Submit all cmd buffers passed to vkQueueSubmit
2015-05-12 14:38:12 -07:00
Kristian Høgsberg
9905481552
vk: Add generated header for HSW and IVB (GEN75 and GEN7)
2015-05-12 14:29:04 -07:00
Jason Ekstrand
ffe9f60358
vk: Add stub() and stub_return() macros and mark piles of functions as stubs
2015-05-12 13:45:02 -07:00
Jason Ekstrand
d3b374ce59
vk/util: Add a anv_finishme function/macro
2015-05-12 13:43:36 -07:00
Jason Ekstrand
7727720585
vk/meta: Break setting up meta clear state into it's own functin
2015-05-12 13:03:50 -07:00
Jason Ekstrand
4336a1bc00
vk/pipeline: Add support for disabling the scissor in "extra"
2015-05-12 12:53:01 -07:00
Kristian Høgsberg
d77c34d1d2
vk: Add clear load-op for render passes
2015-05-11 23:25:29 -07:00
Kristian Høgsberg
b734e0bcc5
vk: Add support for driver-internal custom pipelines
...
This lets us disable the viewport, use rect lists and repclear.
2015-05-11 23:25:29 -07:00
Kristian Høgsberg
ad132bbe48
vk: Fix 3DSTATE_VERTEX_BUFFER emission
...
Set VertexBufferIndex to the attribute binding, not the location.
2015-05-11 23:25:29 -07:00