| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
Some application pass a dummy for pTessellationState which results in a
lot of noise. Only warn if we're actually given tessellation shadear
stages.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This is state the we generate when compiling the shaders and we need it
for mapping resources from descriptor sets to binding table indices.
|
|
|
|
|
| |
No functional change, but the control flow around searching the cache
and falling back to compiling is a bit simpler.
|
|
|
|
|
| |
We have to keep it there for the cache to work, so let's not have an
extra copy in struct anv_pipeline too.
|
| |
|
|
|
|
|
|
| |
Instead of the arbitrary order modules might be specified in.
Acked-by: Jason Ekstrand <[email protected]>
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The GEN_GEN macros aren't available in anv_pipeline since it only gets
compiled once for the whold driver.
|
|
|
|
| |
Signed-off-by: Jordan Justen <[email protected]>
|
|
|
|
| |
Signed-off-by: Jordan Justen <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
We were assuming it was 32kB everywhere, reducing the available URB
space. It's actually 16kB on Ivybridge, Baytrail, and Haswell GT1-2.
|
|
|
|
| |
Now we're emitting HS and DS packets as well.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|