| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
I was trying to skip state updates when !dirty, and suspiciously
everything was always dirty.
|
|
|
|
| |
Cleans up some output to be more obvious in a piglit test I'm looking at.
|
| |
|
|
|
|
|
| |
This was being generated frequently by matrix multiplies of 2 and
3-channel vertex attributes (which have the 0 or 1 loaded in the shader).
|
|
|
|
| |
This will be used more in the next commits.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Copy propagating these might result in reading the r4 after some other
instruction has written r4. Just prevent all copy propagation of this for
now.
Fixes bad rendering with upcoming indirect register access support, where
the copy propagation was consistently happening across another read.
|
|
|
|
|
|
|
|
|
|
|
| |
Merging VS and CS into the same struct wasn't winning us anything except
for not allocating a separate BO (but if we want to pack programs into
BOs, we should pack not just those 2 programs together). What it was
getting us was a bunch of code duplication about hash table lookups and
propagating vc4_compile contents into a vc4_compiled_shader.
I was about to make the situation worse with indirect uniform buffer
access.
|
|
|
|
|
|
| |
I wanted to make another set of texture uploads for handling reladdr
constants, and duplicating all the bitshifting looked like a terrible
idea. In the process, this fixes a swap of the s/t texture wrap modes.
|
|
|
|
|
|
|
|
|
|
| |
Under the simulator, reading registers before writing them triggers an
assertion failure. c->undef gets treated as r0, which will usually be
written, but not if it's used in the first instruction. We should
definitely not be aborting in this case, and return some sort of undefined
value instead.
Fixes glsl-user-varying-ff.
|
|
|
|
|
|
|
|
|
| |
Putting those in VRAM can cause long pauses due to buffers being moved
into / out of VRAM.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84662
Cc: [email protected]
Reviewed-by: Alex Deucher <[email protected]>
|
|
|
|
|
| |
This is a common production of st_glsl_to_tgsi, because CMP takes a float
argument.
|
|
|
|
|
| |
This is a common production of st_glsl_to_tgsi, which uses negate flags on
source arguments to handle subtraction.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The non-base NPOT levels are stored as POT-aligned images. We get that
POT alignment by minifying the POT-aligned base level.
This means that level strides are also POT aligned, so we have to tell the
rendering mode config that our resource is larger than the actual
requested area.
Fixes the fbo-generatemipmap-formats NPOT cases. Regresses
depthstencil-render-miplevels 273 * -- the texture presentation now works
(where it was completely broken before), it looks like there's some
overflow of image bounds happening at the lower miplevels.
|
|
|
|
| |
Now this whole setup matches the kernel's file layout much more closely.
|
|
|
|
| |
This brings us the -128/128 clamping on the w component.
|
|
|
|
|
| |
Thanks to robclark for pointing out that I was probably failing to do this
when I reported a "bug" in his lowering code.
|
|
|
|
|
|
| |
It was broken by 343b014b57ecc5431477e090100e6a26edbda540.
Signed-off-by: Chia-I Wu <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
It's fairly easy, thanks to Rob Clark's lowering code. Fixes
two-sided-lighting and 4 vertex-program-two-side testcases, while
regressing 8 testcases that involve enabling two-sided color while only
initializing one of the two colors in the VS. If you're enabling two
sided color, it's of course expected that you really do set up both
colors, so this is still an improvement (and when we set up a linker for
TGSI, we'll hopefully fix those 8 fails).
|
| |
|
| |
|
| |
|
|
|
|
| |
Acked-by: Rob Clark <[email protected]>
|
|
|
|
| |
Acked-by: Rob Clark <[email protected]>
|
|
|
|
|
|
|
|
| |
Lots of drivers need to transform the weird instructions in TGSI into
reasonable scalar ops, and this code can make those translations
canonical.
Acked-by: Rob Clark <[email protected]>
|
|
|
|
|
|
|
| |
The simulator assertion fails if you have a write to a reg and then a read
(for example, in the NOP side of an instruction), even if the read isn't
used for anything. By setting unused raddrs to NOP, we avoid the problem
(since only the phsyical registers are tracked).
|
|
|
|
| |
I'm going to be doing the same logic for some more fields next.
|
|
|
|
|
|
| |
v2: Do not demote items that are already in the pool
Signed-off-by: Niels Ole Salscheider <[email protected]>
|
|
|
|
|
|
|
| |
Instead of crashing.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79155#c5
Reviewed-by: Marek Olšák <[email protected]>
|
|
|
|
|
|
|
|
| |
When a shader needs N surfaces, we should upload N surfaces and not depend on
how many are bound. This commit is larger than it should be because we did
not export how many surfaces a surface uses before.
Signed-off-by: Chia-I Wu <[email protected]>
|
|
|
|
|
|
|
| |
When a shader needs N samplers, we should upload N samplers and not depend on
how many are bound.
Signed-off-by: Chia-I Wu <[email protected]>
|
|
|
|
|
|
| |
Reviewed-by: Roland Scheidegger <[email protected]>
v2: fix svga too
|
|
|
|
|
|
|
| |
It only needs the constant buffer with clip planes and read-write resources
for the GS->VS ring and streamout. That's 2 pointers.
Reviewed-by: Michel Dänzer <[email protected]>
|
|
|
|
| |
Reviewed-by: Michel Dänzer <[email protected]>
|
|
|
|
|
|
| |
I hope this is correct.
Reviewed-by: Michel Dänzer <[email protected]>
|
|
|
|
|
|
| |
We only support 16 vertex attribs, not 32.
Reviewed-by: Michel Dänzer <[email protected]>
|
|
|
|
|
|
|
|
|
| |
This is a wrong place to flush caches to say the least.
I don't think we need to flush the instruction caches if we don't patch
shaders with DMA.
Reviewed-by: Michel Dänzer <[email protected]>
|
|
|
|
|
|
|
|
|
| |
st/mesa has the same flag in its shader key, we don't need to do it
in the driver anymore.
Instead, use TGSI_INTERPOLATE_LOC_SAMPLE, which is what st/mesa sets.
Reviewed-by: Michel Dänzer <[email protected]>
|
|
|
|
| |
Reviewed-by: Michel Dänzer <[email protected]>
|
|
|
|
|
|
|
| |
The first compiled shader is sometimes useless, because the key doesn't match
the key for the draw call where it's used.
Reviewed-by: Michel Dänzer <[email protected]>
|
|
|
|
| |
Reviewed-by: Michel Dänzer <[email protected]>
|
| |
|
|
|
|
| |
Reviewed-by: Michel Dänzer <[email protected]>
|
|
|
|
| |
Use an array of properties indexed by TGSI_PROPERTY_* definitions.
|
|
|
|
| |
Reviewed-by: Michel Dänzer <[email protected]>
|
|
|
|
|
|
|
|
| |
I'll need this in radeonsi.
v2: use __builtin_popcountll if available
Reviewed-by: Michel Dänzer <[email protected]>
|
| |
|
|
|
|
|
| |
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.2 10.3" <[email protected]>
|
|
|
|
|
| |
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "10.3" <[email protected]>
|