Jason Ekstrand
5a4ebf6bc1
vk: Move to the new pipeline creation API's
2015-07-08 17:30:18 -07:00
Jason Ekstrand
abbb776bbe
vk/vulkan.h: Remove programPointSize
...
Instead, we auto-detect whether or not your shader writes gl_PointSize. If
it does, we use 1.0, otherwise we take it from the shader.
2015-07-07 16:00:46 -07:00
Jason Ekstrand
8c5e48f307
vk: Rename NUM_SHADER_STAGE to SHADER_STAGE_NUM
...
This is a refactor of more than just the header but it lets us finish
reformating the shader stage enum.
2015-07-06 16:43:28 -07:00
Chad Versace
55752fe94a
vk: Rename functions ALIGN_*32 -> align_*32
...
ALIGN_U32 and ALIGN_I32 are functions, not macros. So stop using
allcaps.
2015-06-26 15:07:59 -07:00
Jason Ekstrand
d5e41a3a99
vk/compiler: Add the initial hacks to get SPIR-V up and going
2015-06-25 17:36:35 -07:00
Jason Ekstrand
a62edcce4e
Merge remote-tracking branch 'mesa-public/master' into vulkan
2015-06-23 18:05:25 -07:00
Kristian Høgsberg Kristensen
9b9f973ca6
vk: Implement scratch buffers to make spilling work
2015-06-19 15:42:15 -07:00
Kristian Høgsberg Kristensen
c103c4990c
vk: Set binding table layout for CS
...
We weren't setting the binding table layout for the backend compiler.
2015-06-12 18:21:49 -07:00
Kristian Høgsberg Kristensen
2fdd17d259
vk: Generate CS prog_data into the pipeline instance
...
We were generating the prog_data into a local variable and never
initializing the pipeline->cs_prog_data one.
2015-06-12 18:21:49 -07:00
Kristian Høgsberg Kristensen
765175f5d1
vk: Implement basic compute shader support
2015-06-11 15:31:42 -07:00
Kristian Høgsberg Kristensen
405697eb3d
vk: Stop asserting we have a fragment shader
...
Even for graphics, this is not a requirement, we can have a depth-only output pipeline.
2015-06-11 15:07:38 -07:00
Kristian Høgsberg Kristensen
923e923bbc
vk: Compile fragment shader after VS and GS
...
Just moving code around to do shader stages in the natual order.
2015-06-11 14:55:50 -07:00
Jason Ekstrand
d842a6965f
vk/compiler: Free the GL errors data
2015-06-09 12:36:23 -07:00
Jason Ekstrand
9f292219bf
vk/compiler: Free more of prog_data when tearing down a pipeline
2015-06-09 12:36:23 -07:00
Jason Ekstrand
531549d9fc
vk/pipeline: Move freeing the program stream to pipeline.c
...
It's created in pipeline.c so we should free it there.
2015-06-08 14:27:04 -07:00
Kristian Høgsberg Kristensen
9eab70e54f
vk: Create a minimal context for the compiler
...
This avoids the full brw context initialization and just sets up context
constants, initializes extensions and sets a few driver vfuncs for the
front-end GLSL compiler.
2015-06-08 08:51:40 -07:00
Jason Ekstrand
d4cbf6a728
vk/compiler: Add an index_count to the bind map and check for OOB
2015-06-01 12:25:58 -07:00
Jason Ekstrand
510b5c3bed
vk/HACK: Plumb real descriptor set/index into textures
2015-06-01 12:25:58 -07:00
Jason Ekstrand
1b211feb6c
vk/compiler: Zero out the vs_prog_data struct when VS is disabled
...
Prevents uninitialized value errors
2015-05-25 17:14:49 -07:00
Jason Ekstrand
14929046ba
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.
2015-05-20 17:05:41 -07:00
Jason Ekstrand
b6c7d8c911
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.
2015-05-18 15:58:20 -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
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
Kristian Høgsberg
83c7e1f1db
vk: Add support for sampler descriptors
2015-05-13 14:47:11 -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
Kristian Høgsberg
4f25f5d86c
vk: Support not having a vertex shader
...
This lets us bypass the vertex shader and pass data straight into
the rasterizer part of the pipeline.
2015-05-11 23:25:28 -07:00
Kristian Høgsberg
20ad071190
vk: Allow NULL as a valid pipeline layout
...
Vertex buffers and render targets aren't part of the layout so having
an empty layout is pretty common.
2015-05-11 22:12:56 -07:00
Kristian Høgsberg
769785c497
Add vulkan driver for BDW
2015-05-09 11:38:32 -07:00