URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bc3bec76c0d4c1fc41a7b6bc9152fd7e81fdd033 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 17:57:02 2023 +0100
panfrost: Add a JOBX() macro to simplify job-frontend selection Common code will soon call job-frontend specific helpers for anything that's not common to CSF/JM. Let's provide a JOBX() macro that does the correct prefixing based on the PAN_ARCH value. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9dd4c5b4e60eee23c6cf463d2398a615f6fa1cfd Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 17:38:12 2023 +0100 panfrost: Move JM helpers to their own source file Before we start adding CSF support, let's move every JM-specific bits out of pan_cmdstream.c. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5e5a766a815bc62a68f41d7083272f2e92ff7170 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Thu Oct 5 18:56:53 2023 +0200 panfrost: Prepare things for the common/JM cmdstream split In order to be able to split the code into separate files, we need to share some common definitions. Create a pan_cmdstream.h file containing some structs and helpers. This file is meant to be included from per-gen source files. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=635385a807aa5b1b6428b6cd30bd952450ff5230 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 17:43:08 2023 +0100 panfrost: s/init_batch/jm_init_batch/ We will have a CSF-specific implementation. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a0b38c4827456422fe42f04b92322588e05f9a53 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 17:26:02 2023 +0100 panfrost: s/preload/jm_preload_fb/ We'll have a specific version for CSF. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2558a12633d601c1a3df30eb49c642419a3aece2 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 16:18:47 2023 +0100 panfrost: Rename JM-specific batch submission helpers Prefix them with jm_ so we can easily specialize things for CSF. panfrost_batch_submit_ioctl is renamed into jm_submit_jc() which reflects the fact the ioctl() submits one job chain at a time, and panfrost_batch_submit_jobs() is renamed jm_submit_batch() because it's shorter and is descriptive enough. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1dfc9ca3cf92549e6e2a1a38739862815eb803f4 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 16:04:05 2023 +0100 panfrost: s/panfrost_emit_primitive/jm_emit_primitive/ This function is JM-specific, let's prefix it accordingly. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fb2d2410bd8d218ecf80b1fa5616f0f01aeb4ff9 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 15:56:28 2023 +0100 panfrost: s/panfrost_emit_shader/jm_emit_shader_env/ Prefix with jm_ so we know this is JM-specific, and emit_shader_env() to make it clear this is the shader environment descriptor we emit here. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=50898556e0b9a4c0fec983cf1ce73764aa7be9d7 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 15:40:13 2023 +0100 panfrost: Rename panfrost_batch_get_bifrost_tiler() Tiler descriptor emission will be different on CSF, so let's just prefix the function with jm_, and pick a shorter name without bifrost in it (the function is already conditionally defined if PAN_ARCH >= 6, which means bifrost or later). Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5225eeb4b116f96edd0963b0a45ecc1a2ad48a8e Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 15:35:16 2023 +0100 panfrost: Drop the vertex_count argument passed to panfrost_batch_get_bifrost_tiler() We always pass a non-zero vertex_count. Let's get rid of this argument and unconditionally emit the heap descriptor. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e44dae6cdbfc88c4d42a26c69d7c9b1d70d288a6 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 15:28:28 2023 +0100 panfrost: Move JM specific bits out of panfrost_launch_xfb() Create a jm_launch_xfb() helper that's called from panfrost_launch_xfb() so we can later specialize things for CSF. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6ed0968d3daef7a78fe32b051950af69b7992d58 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 15:24:22 2023 +0100 panfrost: Move JM-specific bits out of panfrost_launch_grid_on_batch() Create a jm_luanch_grid() helper that's called from panfrost_launch_grid_on_batch() so we can later specialize things for CSF. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0e168f2defba09bc918011e511293380739ba147 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 15:18:39 2023 +0100 panfrost: Use batch->tls.gpu to store the compute TLS descriptor This seems a bit silly, but is needed if we want to move JM/CSF job emission to their own file without having to pull the panfrost_emit_shared_memory() function there. It also allows us to get rid of the thread_storage argument passed to panfrost_emit_shader(). Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9592b61883e63be43dcca3cf3366de2f07b3cd52 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 15:09:33 2023 +0100 panfrost: Move all JM-specific bits out of panfrost_direct_draw() Add a jm_launch_draw() helper taking care of the JM descriptor emission, and call it from panfrost_direct_draw(). Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=691d9747e56189d6c54c6e8ad137d6edebc74d71 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 14:52:47 2023 +0100 panfrost: Re-order things in panfrost_direct_draw() Re-order things in panfrost_direct_draw() so we have all non-HW specific stuff done first, and then the descriptor emission. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=172d4bccd29c71f21ed1d5fec524cd7bb9608cad Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 14:39:43 2023 +0100 panfrost: Factor out the vertex count logic Makes panfrost_direct_draw() shorter and thus easier to read. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f167e2facf9ba91f2a754c7a812af21e95e5e628 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 14:27:13 2023 +0100 panfrost: Factor out the point-sprite shader update logic Not strictly needed for CSF, but anything we can do to make panfrost_direct_draw() shorter is good to take. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=782dc11791f4cfd2e8c70383929acf7f7733c5ca Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 14:21:08 2023 +0100 panfrost: Rename several job emission helpers First of all, we want to prefix those with jm_, so we can later add CSF-specific job emission helpers. We also take this as an opportunity to clarify what these helpers emit exactly: the draw section of a job descriptor (suffixed with _draw) or the job descriptor itself (suffixed with _job). Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e25b8d07b8b9b6c03ef0eab999b28bc11ae4264f Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 14:05:59 2023 +0100 panfrost: Move the JM-specific bits out of emit_fragment_job() Add a jm_emit_fragment_job() helper that does the fragment job emission so we can re-use the rest of emit_fragment_job() for CSF too. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=04f4c39a4e8f1bd53270a89d11bd1d3d8f4f9bec Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 14:02:48 2023 +0100 panfrost: s/panfrost_emit_vertex_tiler_jobs/jm_push_vertex_tiler_jobs/ Prefix the function with jm_, so it's clear its JM-specific helper. While at it, replace emit by push, since the descriptor emission happens before that, all this function does is pushing jobs to the job chain. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=44bd7067b7776ba50e34f8e72baea0fc7397f7f6 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 13:10:12 2023 +0100 panfrost: Move JM specific fields to their own struct In preparation of CSF support addition, we move any JM related bits out of panfrost_batch into a panfrost_jm_batch struct that's embedded in panfrost_batch inside an anonymous union. This way, we can easily specialize things for CSF without polluting the panfrost_batch object with CSF-specific fields. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9de3ff9a784869c5b6c13aba1b741d274a625247 Author: Alyssa Rosenzweig <aly...@rosenzweig.io> Date: Wed Nov 15 11:10:53 2023 +0100 panfrost: Add panfrost_get_{position,varying}_shader() helpers We will use those when adding CSF support. Signed-off-by: Alyssa Rosenzweig <aly...@rosenzweig.io> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Reviewed-by: Boris Brezillon <boris.brezil...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f53c37892abd4c0cf70ad4ae4a19328f0a122fe7 Author: Alyssa Rosenzweig <aly...@rosenzweig.io> Date: Wed Nov 15 11:07:11 2023 +0100 panfrost: Factor out vertex attribute stride calculation We will use the new panfrost_vertex_attribute_stride() when adding CSF support. Signed-off-by: Alyssa Rosenzweig <aly...@rosenzweig.io> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Reviewed-by: Boris Brezillon <boris.brezil...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea72a0bec6e0593c8e5cf971124cb8d08ce7bb48 Author: Alyssa Rosenzweig <aly...@rosenzweig.io> Date: Wed Nov 15 11:02:49 2023 +0100 panfrost: Add an allow_rotating_primitives() helper Factor out the logic so we can use the helper when adding CSF support. Signed-off-by: Alyssa Rosenzweig <aly...@rosenzweig.io> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Reviewed-by: Boris Brezillon <boris.brezil...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e81f99134ee2c9681bbea9694db6676dfa147ae3 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Mon Nov 20 09:41:29 2023 +0100 panfrost: Use u_reduced_prim() to do the is_line check Suggested-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a183b8c49542c5c3a4e2f8c95c6f32dc23593081 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Thu Oct 5 18:52:08 2023 +0200 panfrost: Store varying related fields in panfrost_batch Store varying pointers in panfrost_batch. This will make the job-frontend split easier by reducing the number of arguments we pass to functions. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=19d5963c5720bc124edb92e1eb4d70cc07adc45c Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Thu Oct 5 09:24:29 2023 +0200 panfrost: Stop passing vertex attribute arrays around They are accessible through batch->{attribs,attrib_bufs}[PIPE_SHADER_VERTEX], which is updated in panfrost_update_state_3d(), if needed. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a0d0e07036197aaa2eada53a1c6760407128b401 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Thu Oct 5 18:49:03 2023 +0200 panfrost: Store the index pointer in panfrost_batch So we can later use it from job-frontend specific hooks without having to pass the pointer around. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d618a465903c0a2441769ed7528da4c22fc16e59 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Tue Nov 14 18:19:04 2023 +0100 panfrost: Add a submit_batch() hook to panfrost_vtable This per-arch method will take care of preparing the batch for submission and submitting it. This allows us to get rid of a bunch of methods in panfrost_vtable, and turn some indirect function calls into direct calls. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=46fc7d2dc93028b6e02612583b97f26163d63a7d Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Nov 15 16:29:57 2023 +0100 panfrost: Get rid of unused fb parameter passed to panfrost_batch_submit_jobs() Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=070bdd14baee8d75a41bb896420838ad251f63b9 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Tue Nov 14 18:12:49 2023 +0100 panfrost: Get rid of the out_sync parameter in panfrost_batch_submit_jobs() We always pass ctx->syncobj, which can be extracted from the batch passed to panfrost_batch_submit_jobs(), so let's just kill this argument. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=34512fabb47762ecc6cb364ddec875c8aa6fab19 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Tue Nov 14 18:10:23 2023 +0100 panfrost: Get rid of unused in_sync parameter in panfrost_batch_submit[_ioctl]() in_sync is always zero, so let's just get rid of the parameter. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7b6e959b731bc0013b0def916c5212a2d9d7e204 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Tue Nov 14 17:50:34 2023 +0100 panfrost: Move the panfrost_emit_tile_map() call around Move the panfrost_emit_tile_map() call before any of the per-gen calls in panfrost_batch_submit(). This is in preparation of moving the per-gen batch submission logic to a single hook instead of having multiple indirect calls, and given the tile map doesn't depend on any of the states modified by the per-gen calls, moving it before them shouldn't be an issue. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=037e7a530cdd07125e270db76d2cb0bb7a6c3572 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Oct 4 09:51:00 2023 +0200 panfrost: Emit the fragment job from panfrost_batch_submit() Now that emit_fragment_job() stores the fragment job GPU pointer in panfrost_batch, we can move this step in panfrost_batch_submit(), which will help with v10/CSF support. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a4f037bd6d1d25117995c3432ddbf3d1ad840e76 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Tue Nov 14 17:14:21 2023 +0100 panfrost: Store the fragment job descriptor address in the batch In preparation of v10 support, where the fragment job is not passed as a descriptor, but issued directly on the command stream, we make ->emit_fragment_job() a void method, and store the fragment job descriptor in the batch. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d3b7b8c8071f3d3cb6ceee5c76f3118ecdb08bc5 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Tue Nov 14 14:31:58 2023 +0100 panfrost: Stop using the scoreboard to check the presence of draws/compute Now that we count draws and compute jobs, we can change some of the tests to be HW-agnostic, so they can be re-used when we introduce support for CSF hardware. Anything that's related to job submission keeps using the scoreboard information, because this code will stay JM-specific. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9b2e78b003396eb4ef7231150618ded374ad3c85 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Wed Oct 4 09:40:30 2023 +0200 panfrost: Make panfrost_has_fragment_job() public We want to move the kernel driver specific submission logic to pan_cmdstream.c where we can define per-gen functions. In order to do that, we need panfrost_has_fragment_job() to be public. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ab18d0709a408d307de92147c5ad051c9cb10a2c Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Tue Nov 14 14:05:52 2023 +0100 panfrost: Count the number of compute jobs at the batch level We will use this information to make some helpers HW-agnostic so they can work on CSF hardware. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f16312c01b825b723b25da8ea895ceca01a97484 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Tue Nov 14 13:53:49 2023 +0100 panfrost: Express the per-batch limit in term of draws We turn the 10000 jobs limit into a 10000 draw limit because: - on HW supporting IDVS a draw is just a single job, and having a common limit for all HW is simpler - draw_count < 10000 fits in the max jobs limit if we assume the worst case scenario (3 jobs per draw) - CI seems to be happy (no spurious timeouts after this change) Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=539e5e435c1ab7fdacdb5d0be752e0e21ad9d50e Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Tue Nov 14 13:36:51 2023 +0100 panfrost: Count draws at the batch level This way we have a HW-agnostic way to know how many draws were issued, instead of looking into the job chain builder guts. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=948062ee84dab8f8bf742f76b108ab0b481a6578 Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Mon Nov 13 16:53:01 2023 +0100 panfrost: Inline pan_emit_tiler_ctx() Tiler context emission will differ on v10. Given pan_emit_tiler_ctx() was only used in the gallium driver, and its implementation is relatively simple, inline the code in panfrost_batch_get_bifrost_tiler(). This way we will avoid the churn caused by the function prototype change. Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b378cfbc484f679e81b84dddfb68dfab14872cac Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Mon Nov 13 16:50:16 2023 +0100 panfrost: Inline pan_emit_tiler_heap() Tiler heap emission will differ on v10. Since pan_emit_tiler_heap() is only used by the gallium driver, and it's simple enough to be inlined, move the code to panfrost_batch_get_bifrost_tiler(). Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=708a3a33a85e8b7af0a342f3d3a5028028135bdc Author: Boris Brezillon <boris.brezil...@collabora.com> Date: Tue Sep 5 16:37:43 2023 +0200 panfrost: Rename panfrost_vtable::context_init We are about to add arch-specific context initialization/cleanup hooks. Rename the existing context_init hook to avoid confusion (this hook was just populating the pipe_context vtable). Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249> URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9a53cca85a09f7fc2187c6e047bcd41832dd3424 Author: Erik Faye-Lund <erik.faye-l...@collabora.com> Date: Wed Aug 23 13:22:29 2023 +0200 panfrost: do not open-code panfrost_has_fragment_job() panfrost_batch_submit() already has an has_fragment_job() at the beginning of the function. Store the result in a local has_frag variable and replace the open-coded test by an 'if (has_frag)'. Signed-off-by: Erik Faye-Lund <erik.faye-l...@collabora.com> Reviewed-by: Boris Brezillon <boris.brezil...@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249>