- 18 Nov, 2020 1 commit
-
-
Marek Olšák authored
This removes some overhead from tc_draw_vbo and increases the maximum number of draws per batch from 153 to 192 in u_threaded_context. Reviewed-by:
Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <!7441>
-
- 02 Nov, 2020 1 commit
-
-
Connor Abbott authored
Part-of: <!7385>
-
- 10 Sep, 2020 2 commits
-
-
Rob Clark authored
We need to do MSAA clear on the 3d pipe, it seems to not work out properly on 2d pipe (at least for 4x MSAA and heights that are not multiple of 16). This matches what blob and tu seem to do. Fixes the following with DEQP_CONFIG=rgba8888d24s8ms4 dEQP-GLES31.functional.primitive_bounding_box.depth.builtin_depth.per_primitive_bbox_equal dEQP-GLES31.functional.primitive_bounding_box.depth.builtin_depth.per_primitive_bbox_larger dEQP-GLES31.functional.primitive_bounding_box.depth.user_defined_depth.per_primitive_bbox_equal dEQP-GLES31.functional.primitive_bounding_box.depth.user_defined_depth.per_primitive_bbox_larger Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!6649>
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!6649>
-
- 28 Aug, 2020 1 commit
-
-
Rob Clark authored
Replace lrz_clear with the more general purpose prologue rb. While the epilogue is per-tile (in gmem mode), the prologue is per-batch, so also add some comments to make that point more clear. Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!6475>
-
- 29 Jul, 2020 1 commit
-
-
Rob Clark authored
`fixup_draw_state()` was updating `ctx->dirty` after it had already been copied into the emit struct, which had the result that we were not re- emitting the rast state when primitive_restart changes. Fixes: 4d8f42c8 ("freedreno/a6xx: separate rast stateobj for prim restart") Closes: #3067Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!6117>
-
- 14 Jul, 2020 5 commits
-
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!5907>
-
Jonathan Marek authored
Update some registers in the 0x8c00-0x8dff range. Signed-off-by:
Jonathan Marek <jonathan@marek.ca> Part-of: <!5870>
-
Jonathan Marek authored
Update some registers in the 0x8000-0x87ff range. Signed-off-by:
Jonathan Marek <jonathan@marek.ca> Part-of: <!5870>
-
Connor Abbott authored
It turns out that this clears CP_LOAD_STATE6 packets, including disabling any pending loads for SS6_INDIRECT/SS6_BINDLESS (these loads don't actually happen until the draw itself, and I'm not sure if they happen if the state is unused by the shader) and marking constants and UBO descriptors loaded with SS6_DIRECT as invalid. It's used very differently from HLSQ_UPDATE_CNTL on a4xx from whence the name came, and unlike on a4xx it's not readable, so this probably doesn't line up with HLSQ_UPDATE_CNTL on a4xx. Part-of: <!5877>
-
Kristian H. Kristensen authored
This register contains information about the destination format, so let's rename to SP_2D_DST_FORMAT. Part-of: <!5717>
-
- 07 Jul, 2020 1 commit
-
-
Connor Abbott authored
Part-of: <!5732>
-
- 26 Jun, 2020 2 commits
-
-
Connor Abbott authored
Analogous to the turnip change. Part-of: <!5644>
-
Connor Abbott authored
This was already done correctly for the indirect variants, and turnip was setting the correct value, but it seems freedreno missed the change in the non-indirect variant. Also, fix a misspelling of "indices" and add a type to INDX_SIZE. Part-of: <!5644>
-
- 25 Jun, 2020 1 commit
-
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!5634>
-
- 19 Jun, 2020 2 commits
-
-
Kristian H. Kristensen authored
The number of vertices may be out of bound and if we use it for computing index buffer size we may get too big a size. Part-of: <!5552>
-
Rob Clark authored
This moves the last bit of important state to be serialized from ir3_shader to ir3_shader_variant. Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!5508>
-
- 04 Jun, 2020 2 commits
-
-
Rob Clark authored
In particular, properly detect reversal of depth-test direction. With that we can remove a lot of cases where we were unnecessarily invalidating LRZ, which was simply papering over the direction- reversal issue in deqp. Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!5298>
-
Rob Clark authored
Unlike other conditions which prevent early-discard of fragments, kill does not prevent early LRZ test. Split `has_kill` from `no_earlyz` so we can take advantage of this. Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!5298>
-
- 12 May, 2020 1 commit
-
-
Eric Anholt authored
Final cleanup commit now that they're the same. Part-of: <!4967>
-
- 01 May, 2020 2 commits
-
-
Eric Anholt authored
We weren't filling in the tess mode of the key, or setting has_gs on GS shaders, resulting in assertion failures when NIR intrinsics didn't get lowered. We have to make a guess at prim mode for TCS, but it should be better to have some shader-db coverage than none, and it will avoid these failures happening when we start precompiling shaders. Part-of: <!4562>
-
Rob Clark authored
In detecting the case where we actually do need to re-emit LRZ state (due to new batch), we were checking `ctx->last.dirty` to detect when we cannot trust previous state. But this is cleared before we check it. Move where it is cleared to the end of the draw_vbo() path. Fixes: dfa702e9 ("freedreno/a6xx: limit LRZ state emit") Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!4842>
-
- 30 Apr, 2020 1 commit
-
-
Rob Clark authored
This is one of the hotter pkt7 packets, since it is guaranteed to happen on every draw. Switch to OUT_PKT() for less driver overhead in the draw path. Slight bit of cheating for using CP_DRAW_INDX_OFFSET_0 for the first dword in all cases. Possibly *gen_header.py* could be more clever and use typedef's in the cases of bitsets like vgt_draw_initiator. But this works out because it is always the first dword. Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!4813>
-
- 28 Apr, 2020 1 commit
-
-
Rob Clark authored
We should only rely on overflow detection for indirect draws, where we have no other option. This doesn't use quite the worst-possible-case sizes, which in practice seem to be ~20x larger than what is required. But instead uses roughly half of that. Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!4750>
-
- 18 Feb, 2020 1 commit
-
-
Rob Clark authored
1) Name RM6_COMPUTE, and rename RM6_ENDVIS (from RM6_BLIT) to better reflect what it actually does 2) Cleanup open-coded mode enum values 3) Removed unused 0x10 Signed-off-by:
Rob Clark <robdclark@chromium.org> Tested-by: Marge Bot <!3833> Part-of: <!3833>
-
- 14 Feb, 2020 1 commit
-
-
Jonathan Marek authored
Signed-off-by:
Jonathan Marek <jonathan@marek.ca> Reviewed-by:
Connor Abbott <cwabbott0@gmail.com> Reviewed-by:
Rob Clark <robdclark@gmail.com> Part-of: <!3814>
-
- 12 Feb, 2020 1 commit
-
-
Jonathan Marek authored
Loses some information about which formats can be used in which cases, but we encode that information in the format table anyway. Important notes: * RB6_R10G10B10A2_UNORM becomes FMT6_R10G10B10A2_UNORM_DEST * TFMT6_8_8_8_UNORM becomes FMT6_8_8_8_X8_UNORM (not FMT6_8_8_8_UNORM) Signed-off-by:
Jonathan Marek <jonathan@marek.ca> Reviewed-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Kristian H. Kristensen <hoegsberg@google.com> Tested-by: Marge Bot <!3798> Part-of: <!3798>
-
- 01 Feb, 2020 1 commit
-
-
Rob Clark authored
Running the complete deqp_gles2 seems to trigger an overflow in lrz cmdstream. We skip the blit clear fast-path if there have been any draws (so mid-batch clears of any attached buffer hit the 3d pipe). Which means it is safe to simply discard any lrz clear rendering. Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!3569>
-
- 17 Jan, 2020 2 commits
-
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@chromium.org> Reviewed-by:
Kristian H. Kristensen <hoegsberg@google.com> Part-of: <!3435>
-
Rob Clark authored
This lets us move PC_PRIMITIVE_CNTL into the rasterizr stateobj, rather than unconditionally emitting it directly in the cmdstream on every draw. This also starts adding some tracking about previous draw state, so that following patches can limit some of the register writes we currently emit on every draw. Signed-off-by:
Rob Clark <robdclark@chromium.org> Reviewed-by:
Kristian H. Kristensen <hoegsberg@google.com> Part-of: <!3435>
-
- 08 Nov, 2019 3 commits
-
-
Kristian H. Kristensen authored
At least the gallium blitter helper will call us to draw with tessellation shaders set but a non-patch primitive. Signed-off-by:
Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by:
Rob Clark <robdclark@gmail.com>
-
Kristian H. Kristensen authored
We need to select the right primitive type, set a bit to turn on tessellation and or in the TES output primitive type. Signed-off-by:
Kristian H. Kristensen <hoegsberg@google.com> Acked-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Rob Clark <robdclark@gmail.com>
-
Kristian H. Kristensen authored
Whether we're tessellating and which primitives the TES outputs affects the entire pipeline so let's add a field to the key to track that. Signed-off-by:
Kristian H. Kristensen <hoegsberg@google.com> Acked-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Rob Clark <robdclark@gmail.com>
-
- 29 Oct, 2019 1 commit
-
-
Rob Clark authored
Extract out values for the handful of unknown registers which have different values across different a6xx models, to simplify adding support for new a6xx's. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
- 17 Oct, 2019 1 commit
-
-
Kristian H. Kristensen authored
Since the presence of GS changes how the VS operates we need to track that in the shader key. Signed-off-by:
Kristian H. Kristensen <hoegsberg@google.com>
-
- 25 Sep, 2019 2 commits
-
-
Kristian H. Kristensen authored
Signed-off-by:
Kristian H. Kristensen <hoegsberg@google.com>
-
Kristian H. Kristensen authored
We're using vs and fs now, and adding hs, ds and gs soon. It's confusing enough that we have both DS/TCS and HS/TES. At least for VS and FS there doesn't have to be multiple names. Signed-off-by:
Kristian H. Kristensen <hoegsberg@google.com>
-
- 02 Aug, 2019 1 commit
-
-
Rob Clark authored
Seems this isn't needed anymore on a6xx to control whether visibility stream is used. And it would be hard to deal with if it was, for disabling use of VSC stream in draw pass. So just remove it and simplify things. Signed-off-by:
Rob Clark <robdclark@chromium.org> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
- 10 Jul, 2019 1 commit
-
-
Kristian H. Kristensen authored
Reviewed-by:
Eric Engestrom <eric@engestrom.ch> Acked-by:
Rob Clark <robdclark@gmail.com>
-
- 13 Jun, 2019 1 commit
-
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@chromium.org>
-