summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan/anv_pipeline.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/master' into vulkanJordan Justen2016-03-171-6/+0
|
* anv: Compact render targetsJason Ekstrand2016-03-081-5/+43
| | | | | | | Previously, we would always emit all of the render targets in the subpass. This commit changes it so that we compact render targets just like we do with other resources. Render targets are represented in the surface map by using a descriptor set index of UINT16_MAX.
* anv/pipeline: Move binding table setup to its own helperJason Ekstrand2016-03-071-21/+18
|
* anv: Quiet pTessellationState warningKristian Høgsberg Kristensen2016-03-061-3/+3
| | | | | | Some application pass a dummy for pTessellationState which results in a lot of noise. Only warn if we're actually given tessellation shadear stages.
* anv: Always use point size from the shaderKristian Høgsberg Kristensen2016-03-051-6/+0
| | | | | | | | | | | | There is no API for setting the point size and the shader is always required to set it. Section 24.4: "If the value written to PointSize is less than or equal to zero, or if no value was written to PointSize, results are undefined." As such, we can just always program PointWidthSource to Vertex. This simplifies anv_pipeline a bit and avoids trouble when we enable the pipeline cache and don't have writes_point_size in the prog_data.
* anv: Also cache the struct anv_pipeline_binding mapsKristian Høgsberg Kristensen2016-03-051-27/+57
| | | | | This is state the we generate when compiling the shaders and we need it for mapping resources from descriptor sets to binding table indices.
* anv: Simplify pipeline cache control flow a bitKristian Høgsberg Kristensen2016-03-051-35/+27
| | | | | No functional change, but the control flow around searching the cache and falling back to compiling is a bit simpler.
* anv: Store prog data in pipeline cache streamKristian Høgsberg Kristensen2016-03-051-46/+58
| | | | | We have to keep it there for the cache to work, so let's not have an extra copy in struct anv_pipeline too.
* anv: Remove left-over bits of sparse-descriptor codeKristian Høgsberg Kristensen2016-03-051-4/+0
|
* anv: Compile shader stages in pipeline order.Kenneth Graunke2016-03-031-22/+26
| | | | | | Instead of the arbitrary order modules might be specified in. Acked-by: Jason Ekstrand <[email protected]>
* Merge remote-tracking branch 'origin/master' into vulkanKenneth Graunke2016-03-011-7/+2
|
* anv/pipeline: Follow push constant alignment restrictions on BDW+ and HSW gt3Jason Ekstrand2016-02-291-1/+8
|
* anv/pipeline: Avoid a division by zeroJason Ekstrand2016-02-291-1/+1
|
* anv/pipeline: Use dynamic checks for max push constantsJason Ekstrand2016-02-291-7/+8
| | | | | The GEN_GEN macros aren't available in anv_pipeline since it only gets compiled once for the whold driver.
* anv/pipeline: Set FS URB space to zero if the FS is unusedJordan Justen2016-02-281-1/+4
| | | | Signed-off-by: Jordan Justen <[email protected]>
* anv/pipeline: Set stage URB size to zero if it is unusedJordan Justen2016-02-281-1/+1
| | | | Signed-off-by: Jordan Justen <[email protected]>
* anv: Set max_hs_threads/max_ds_threadsKristian Høgsberg Kristensen2016-02-241-2/+2
|
* anv: Allocate more push constant space.Kenneth Graunke2016-02-241-5/+11
| | | | | | | | | | | | | | | Previously we allocated 4kB of push constant space for VS, GS, and PS (for a total of 12kB) no matter what. This works, but doesn't fully utilize the space - we have 16kB or 32kB of space. This makes anv use the same method as brw - divide up the space evenly among all active shader stages. This means HS and DS would get space, if those shader stages existed. In the future, we can probably do better by inspecting how many push constants each shader stage uses, and weight things accordingly. But this is strictly better than the old code, and ideally we'd justify a fancier solution with actual performance data.
* anv: Properly size the push constant L3 area.Kenneth Graunke2016-02-241-3/+8
| | | | | We were assuming it was 32kB everywhere, reducing the available URB space. It's actually 16kB on Ivybridge, Baytrail, and Haswell GT1-2.
* anv: Emit 3DSTATE_PUSH_CONSTANT_ALLOC_* via a loop.Kenneth Graunke2016-02-241-0/+6
| | | | Now we're emitting HS and DS packets as well.
* anv: Emit 3DSTATE_URB_* via a loop.Kenneth Graunke2016-02-241-6/+14
| | | | | | | | | | Rather than keeping separate {vs,hs,ds,gs}_start fields, we now store an array indexed by the shader stage (MESA_SHADER_*). The 3DSTATE_URB_* commands are also sequentially numbered. This makes it easy to just emit them in a loop. This simplifies the code a little, and also will make it easier to add more credible HS and DS code later.
* anv/pipeline: Use nir's num_images for allocating image_paramsJason Ekstrand2016-02-181-3/+2
|
* anv/pipeline: Don't leak the binding mapJason Ekstrand2016-02-181-0/+5
|
* Move the intel vulkan driver to src/intel/vulkanJason Ekstrand2016-02-181-0/+1278