SoroushIMG
7f8e172ecf
pvr: add missing frag to geom dependency for jobs targetting same render target
...
Seen as a firmware assert when using a debug build of the firmware
and tested against:
dEQP-VK.pipeline.monolithic.render_to_image.core.1d_array.huge.width_layers.r8g8b8a8_unorm_d16_unorm
Signed-off-by: SoroushIMG <soroush.kashani@imgtec.com >
Acked-by: James Glanville <james.glanville@imgtec.com >
Reported-by: Luigi Santivetti <luigi.santivetti@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23651 >
2023-06-15 16:35:21 +00:00
Luigi Santivetti
5638b768e6
pvr: fix division by block size in blit
...
dEQP-VK.pipeline.monolithic.image.suballocation.\
sampling_type.combined.view_type.2d.\
format.etc2_r8g8b8_unorm_block.count_1.size.13x13
Signed-off-by: Luigi Santivetti <luigi.santivetti@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23591 >
2023-06-15 08:51:41 +00:00
Karmjit Mahil
4eb9d22b9e
pvr: Remove outdated finishme
...
The color attachment load is being handled just below the finishme.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Reviewed-by: Frank Binns <frank.binns@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23619 >
2023-06-15 08:33:09 +00:00
Karmjit Mahil
10c0c68f47
pvr: Dedup a check with pvr_is_render_area_tile_aligned()
...
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Reviewed-by: Frank Binns <frank.binns@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22657 >
2023-06-15 09:15:09 +01:00
Matt Coster
4a2e62844b
pvr: Add support for sampler border colors
...
Currently only the six vulkan 1.0 pre-defined formats are supported,
but some basic infrastructure that will be useful for implementing
VK_EXT_custom_border_color (and vulkan 1.1) is included.
Only formats currently listed in the pvr_format_table in pvr_formats.c
are currently supported. Unlike most (all?) other drivers, the PowerVR
hardware requires each entry in the border color table to be encoded
for every hardware format (of which there are 128 available, plus 128
for compressed formats).
Also in this commit:
- Two new constants in rogue_texstate.xml:
- IMAGE_WORD0_TEXFORMAT_MAX_SIZE, and
- SAMPLER_BORDERCOLOR_INDEX_MAX_SIZE; and
- A new device feature (tpu_border_colour_enhanced)
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21555 >
2023-06-08 10:33:46 +00:00
Matt Coster
b8a32e7694
pvr: Declare dependency on idep_mesautil
...
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21555 >
2023-06-08 10:33:46 +00:00
Karmjit Mahil
aae23fe68d
pvr: HWRT creation simplifications.
...
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Reviewed-by: Matt Coster <matt.coster@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20092 >
2023-06-08 08:55:12 +00:00
Luigi Santivetti
9396ba3be1
pvr: fixup assert in pvr_cmd_buffer_alloc_mem
...
Stop explicitly passing PVR_BO_ALLOC_FLAG_CPU_MAPPED to
pvr_cmd_buffer_alloc_mem(). This is redundant for sub-allocations,
as they are always unconditionally mapped to the CPU.
Signed-off-by: Luigi Santivetti <luigi.santivetti@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23463 >
2023-06-08 08:14:04 +00:00
SoroushIMG
4dc82b4473
pvr: fix infinite recursion in pvr_cmd_buffer_{start,end}_sub_cmd
...
Reported-by: James Glanville <james.glanville@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23463 >
2023-06-08 08:14:04 +00:00
Karmjit Mahil
51db63538c
pvr: Fix PDS temps allocation on fragment stage
...
Previously the USC temps count was incorrectly being used for the
PDS temps count.
It was causing:
csbgen/pvr_packet_helpers.h:79:
__pvr_uint: Assertion `v <= max' failed.
This fixes the assert being hit on:
dEQP-VK.ubo.random.basic_arrays.2
dEQP-VK.ubo.random.all_shared_buffer.3
dEQP-VK.ubo.random.all_shared_buffer.48
dEQP-VK.ubo.random.all_out_of_order_offsets.3
This does not fully fix the tests though.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Reviewed-by: Matt Coster <matt.coster@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23356 >
2023-06-07 18:01:02 +00:00
Karmjit Mahil
8809758fbc
pvr: Rename temps_count to pds_temps_count
...
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Reviewed-by: Matt Coster <matt.coster@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23356 >
2023-06-07 18:01:02 +00:00
Karmjit Mahil
d070e31020
pvr: Fix draw indirect page faults due to missing index list buffer
...
Fixes:
dEQP-VK.draw.renderpass.basic_draw.draw_indirect.*
dEQP-VK.draw.renderpass.basic_draw.draw_indexed_indirect.*
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Reviewed-by: Matt Coster <matt.coster@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23491 >
2023-06-07 17:38:54 +00:00
Oskar Rundgren
d72d13bbb5
pvr: add block compressed formats blit support
...
Surface dimensions and rectangle mappings need to be adjusted for
block compressed formats.
Signed-off-by: Oskar Rundgren <oskar.rundgren@imgtec.com >
Reviewed-by: Matt Coster <matt.coster@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23466 >
2023-06-07 16:29:44 +00:00
Matt Coster
d13baacc8c
pvr: Don't overwrite PDS vertex input flags
...
Fixes:
dEQP-VK.draw.renderpass.simple_draw.simple_draw_triangle_list
dEQP-VK.draw.renderpass.simple_draw.simple_draw_triangle_strip
dEQP-VK.draw.renderpass.indexed_draw.draw_indexed_triangle_list
dEQP-VK.draw.renderpass.indexed_draw.draw_indexed_triangle_strip
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23458 >
2023-06-07 14:20:27 +00:00
Matt Coster
6b53ba341e
pvr: Allow S8_UINT to be used as a stencil attachment format
...
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23431 >
2023-06-07 14:04:04 +00:00
Matt Coster
52050a35c7
pvr: Refactor pvr_unwind_rects()
...
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23430 >
2023-06-07 13:46:40 +00:00
Matt Coster
dc3538cdb5
pvr: Correct calculations in pvr_unwind_rects()
...
Fixes: 6d3d1f884c
pvr: Fix rect splitting logic in pvr_unwind_rects()
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reported-by: Soroush Kashani <soroush.kashani@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23430 >
2023-06-07 13:46:40 +00:00
Karmjit Mahil
817be4b860
pvr: Fix typo causing seg faults copying immutable samplers
...
Fixes seg faults in:
dEQP-VK.binding_model.shader_access.primary_cmd_buf
.sampler_immutable.no_access.single_descriptor.*
dEQP-VK.binding_model.shader_access.primary_cmd_buf
.sampler_immutable.no_access.multiple_contiguous_descriptors.*
It does not fix them. Now they just hit asserts in the compiler.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Reviewed-by: Frank Binns <frank.binns@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23357 >
2023-06-05 13:06:57 +00:00
Vinson Lee
8bc7d71c23
pvr: Fix signed comparison
...
Fix defect reported by Coverity Scan.
Unsigned compared against 0 (NO_EFFECT)
unsigned_compare: This less-than-zero comparison of an unsigned value is never true. val < 0U.
unsigned_conversion: val is converted to an unsigned type because it's compared to an unsigned constant.
Fixes: 480bdff4b5 ("pvr: Add support to process transfer and blit cmds")
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23416 >
2023-06-05 09:21:34 +00:00
Matt Coster
d1b17a5edc
pvr: Implement ZLS subtile alignment
...
This is a workaround for the edge case where a depth buffer is smaller
than a single tile size.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23313 >
2023-06-02 14:43:24 +00:00
Matt Coster
620e7d4cf2
pvr: Rename ds_{image,iview} in pvr_gfx_sub_cmd_job_init()
...
The added prefix makes it clear we're referencing the depth/stencil
attachment.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23313 >
2023-06-02 14:43:24 +00:00
Matt Coster
fa8667b728
pvr: Publicise some static functions from pvr_blit.c
...
These will be used to implement ZLS subtile alignment. One function
that was already public has also had its declaration moved from
pvr_private.h to the newly created pvr_blit.h.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23313 >
2023-06-02 14:43:24 +00:00
Matt Coster
c31998b7d3
pvr: Add pvr_image_view_get_image()
...
This replaces the pattern of vk_to_pvr_image(iview->vk.image).
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23313 >
2023-06-02 14:43:24 +00:00
Matt Coster
675aa18d4d
pvr: Cleanup in pvr_process_cmd_buffer()
...
Renaming all barrier structs allows the pvr_process_event_cmd_barrier()
calls to be placed on a single line.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23313 >
2023-06-02 14:43:24 +00:00
Matt Coster
8dbf9932a9
pvr: Add wait_on_previous_transfer flag to graphics subcommand
...
This inserts a barrier before the fragment job to wait on the previous
transfer job.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23313 >
2023-06-02 14:43:24 +00:00
Matt Coster
40ce383554
pvr: Use pvr_sub_cmd_event union members directly
...
This has the benefit of replacing some explicit asserts with static type
checking.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23313 >
2023-06-02 14:43:24 +00:00
Matt Coster
f63f4fac0a
pvr: Move pvr_get_isp_num_tiles_xy() to rogue_hw_utils.h
...
Rename s/pvr/rogue/ to match the other functions in that file.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23313 >
2023-06-02 14:43:24 +00:00
Matt Coster
b5ac476b98
pvr: Fix segfault in pvr_physical_device_init()
...
This was introduced (by me) in a previous commit. Part of pdevice->vk
was initialised before calling vk_physical_device_init() which then
overwrite our values.
Fixes: 4ba553ab9a ("pvr: Use common vkGetPhysicalDeviceFeatures2() implementation")
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23366 >
2023-06-02 14:03:28 +00:00
Matt Coster
4ba553ab9a
pvr: Use common vkGetPhysicalDeviceFeatures2() implementation
...
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23311 >
2023-05-31 11:55:06 +00:00
Matt Coster
6dab9ea50d
pvr: Use correct pbe format for VK_FORMAT_A8B8G8R8_UNORM_PACK32
...
Fixes:
- dEQP-VK.api.image_clearing.core.clear_color_image.1d.linear
.single_layer.a8b8g8r8_unorm_pack32_71x1
- dEQP-VK.api.image_clearing.core.clear_color_image.2d.linear
.single_layer.a8b8g8r8_unorm_pack32_33x128
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reported-by: Soroush Kashani <soroush.kashani@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23312 >
2023-05-31 11:38:31 +00:00
Matt Coster
6d3d1f884c
pvr: Fix rect splitting logic in pvr_unwind_rects()
...
Fixes:
dEQP-VK.api.copy_and_blit.core.image_to_buffer.buffer_offset_relaxed
dEQP-VK.api.image_clearing.core.clear_color_image.3d.optimal
.single_layer.r8_unorm_200x180x16
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reported-by: Soroush Kashani <soroush.kashani@imgtec.com >
Reported-by: Oskar Rundgren <oskar.rundgren@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23309 >
2023-05-31 12:23:58 +01:00
Matt Coster
3fc24c64e1
pvr: Fix page faults in occlusion query tests
...
This does not fix the tests completely, but does allow them to run to
completion and fail "properly".
Also contains a few trivial bugfixes in the same codepath.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reported-by: James Glanville <james.glanville@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23100 >
2023-05-30 10:53:41 +00:00
Karmjit Mahil
43f0fef92f
pvr: Handle barrier load and store flags.
...
This commit adds handling for {s,z}loaden and {s,z}storeen to
control loading from and storing to the stencil and depth buffer.
This commit also addressed the FIXMEs around barrier_{load,store}
which control the {s,z}{load,store}en.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Reviewed-by: Frank Binns <frank.binns@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20487 >
2023-05-30 10:36:21 +00:00
Matt Coster
a04f244c0c
pvr: Reorder execution in pvr_cmd_buffer_end_sub_cmd()
...
This allows sub_cmd->job.run_frag to be setup before calling
pvr_sub_cmd_gfx_requires_split_submit().
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reported-by: James Glanville <james.glanville@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23125 >
2023-05-30 10:00:37 +00:00
Matt Coster
173df8f15d
pvr: Fix out of range stream errors for geometry-only jobs on pvrsrvkm
...
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reported-by: James Glanville <james.glanville@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23125 >
2023-05-30 10:00:37 +00:00
Matt Coster
dae68cf4aa
pvr: Do not free deferred pvr_transfer_cmd instances
...
Deferred pvr_transfer_cmd instances are allocated from a dyn_array on
the owning pvr_cmd_buffer and must not be freed directly.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reported-by: James Glanville <james.glanville@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23125 >
2023-05-30 10:00:37 +00:00
Matt Coster
85fa24e061
pvr: Rename shadowing loop variable in pvr_add_deferred_rta_clear()
...
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23125 >
2023-05-30 10:00:37 +00:00
Matt Coster
6e6cd3eb3a
pvr: Use correct surface for deferred RTA clear
...
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reported-by: James Glanville <james.glanville@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23125 >
2023-05-30 10:00:37 +00:00
Matt Coster
0be6f8b5c1
pvr: Correct error flow in pvr_compute_pipeline_compile()
...
Fixes:
dEQP-VK.api.object_management.alloc_callback_fail.compute_pipeline
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23130 >
2023-05-30 10:43:09 +01:00
Matt Coster
a49a2f8765
pvr: Correct error flow in pvr_graphics_pipeline_compile()
...
Fixes:
dEQP-VK.api.object_management.alloc_callback_fail.graphics_pipeline
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23130 >
2023-05-30 10:43:09 +01:00
Matt Coster
9bfd3997b4
pvr: Fix memory leaks on realloc failure in pvr_pipeline.c
...
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23130 >
2023-05-30 10:43:08 +01:00
Matt Coster
4af6a9507f
pvr: Fix allocation scopes in vkCreateRenderPass2() code path
...
These previously COMMAND scoped allocations are stored on the
VkRenderPass and must therefore be OBJECT scoped.
Fixes: dEQP-VK.api.object_management.single_alloc_callbacks.render_pass
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23130 >
2023-05-30 10:43:06 +01:00
Frank Binns
9b7faa7d96
pvr: fix invalid read reported by valgrind
...
pvr_gpu_upload() can't be used in the case of pvr_gpu_upload_usc() as it expects
the source and destination buffers to be the same size. This isn't the case
because pvr_gpu_upload_usc() adds some padding bytes to the size passed in by
the caller.
Fixes: 547a10f870 ("pvr: switch pvr_cmd_buffer_alloc_mem to use pvr_bo_suballoc")
Signed-off-by: Frank Binns <frank.binns@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23185 >
2023-05-25 01:51:36 +00:00
Frank Binns
886ad3b4ec
pvr: fix array overflow in pvr_device_tile_buffer_ensure_cap()
...
The function didn't properly handle the case where the requested capacity was
less than the existing capacity. This led to the loop limit being some huge
number and it writing past the end of the 'buffers' array.
Partially fixes:
dEQP-VK.renderpass.suballocation.multisample_resolve.r16g16b16a16_unorm
.max_attachments_8_samples_2
The test no longer hangs, but segfaults instead.
Signed-off-by: Frank Binns <frank.binns@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23104 >
2023-05-19 10:44:27 +00:00
Matt Coster
c05dd04898
pvr: Return VkResult from winsys buffer_map operation
...
This allows VK_ERROR_MEMORY_MAP_FAILED to propagate correctly.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Frank Binns <frank.binns@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23023 >
2023-05-18 15:56:59 +00:00
Matt Coster
a986aea7f7
pvr: Assorted cleanup
...
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Frank Binns <frank.binns@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23023 >
2023-05-18 15:56:59 +00:00
Matt Coster
4643319f43
pvr: Use common physical device enumeration
...
The PowerVR IP does not contain display hardware - this means it is
always necessary to open two separate devices for render and display.
The try_create_for_drm callback is not suitable for this configuration,
so we use the enumerate callback instead.
The previous implementation did not check that the discovered display
device was compatible with the render device - this is corrected by
unifying the compatibility lists into pvr_drm_configs.
The pvr driver is not currently supported on systems which contain
multiple compatible render or display devices, so the enumerate callback
implementation returns the first discovered render device and its
compatible display device.
This change also removes the workaround for drmGetDevices2() required
after libdrm commit 8cb12a2528d795c45bba5f03b3486b4040fb0f45. The
upstream fix has been in releases of libdrm for over a year now, and
mesa requires reasonably a recent version which is new enough to
contain it.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Frank Binns <frank.binns@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23023 >
2023-05-18 15:56:59 +00:00
Matt Coster
31e98d3783
pvr: Rename primary_{device,fd,path} to display_*
...
This makes it explicit that primary_fd is NOT just a handle to the
primary node on render_fd - rather it's a handle to the primary node
on a separate display device.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Frank Binns <frank.binns@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23023 >
2023-05-18 15:56:59 +00:00
Matt Coster
157499bd05
pvr: Drop pdevice from pvr_physical_device_get_supported_extensions()
...
This parameter doesn't make a lot of sense - it's currently unused, but
it can never be valid anyway since the return of this function is used
in the early initialization of pvr_physical_device.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Frank Binns <frank.binns@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23023 >
2023-05-18 15:56:59 +00:00
Matt Coster
9edac86572
pvr: Squeeze fd handling into winsys layer
...
This sets us up to make use of the common physical device initialization
code.
As well as lifting the fd handles out of the implementations, this
pushes creation and destruction of the fds into the winsys layer. In
order for this to make sense, the winsys object is now created *before*
each pvr_device or pvr_physical_device. If there's an error setting up
the winsys instance, there's no point in continuing to create either
one.
Also lifts alloc to the winsys layer since there's nothing special about
it in either implementation.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reviewed-by: Frank Binns <frank.binns@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23023 >
2023-05-18 15:56:59 +00:00