[Libre-soc-dev] [Mesa-dev] Loading Vulkan Driver

Luke Kenneth Casson Leighton lkcl at lkcl.net
Sun Aug 23 12:30:50 BST 2020


---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68

On Sun, Aug 23, 2020 at 10:36 AM vivek pandya <vivekvpandya at gmail.com> wrote:
>
> Hello all,
>
> I just cleanup a bit and commited code at :
> https://gitlab.freedesktop.org/vivekvpandya/mesa/-/commit/d1f29adf926eb44453db1255834575a6f7169d5f
>
> However it is not working as per my expectation (or my expectations are
> wrong)
>
> I want to see that driver fail at
> https://gitlab.freedesktop.org/vivekvpandya/mesa/-/commit/d1f29adf926eb44453db1255834575a6f7169d5f#54a82819ff146aa01755bf951d797d55a0332a32_0_43
> however in debugger control never reach there.

hm does it reach here?
https://gitlab.freedesktop.org/vivekvpandya/mesa/-/blob/d1f29adf926eb44453db1255834575a6f7169d5f/src/libre-soc/vulkan/libresoc_device.c#L105

(can i recommend a #ifdef VERBOSE_DEBUG and some printfs: it's crude
but effective and when restarting or when others try to replicate this
they will not need to set large numbers of breakpoints.  plus, the
debug print statements become a discussion anchor / reference-point,
and a form of documentation in themselves)

about that: is there an "official" MESA macro for use to do verbose
development-level debug output?  i see the radv code checks an
environment variable:
https://gitlab.freedesktop.org/vivekvpandya/mesa/-/blob/d1f29adf926eb44453db1255834575a6f7169d5f/src/amd/vulkan/radv_device.c#L2569



> I see that in
> https://gitlab.freedesktop.org/apinheiro/mesa/-/commit/07d01ebf6aae2f9ae71a8bea13a5d8acccb6280e
> CreateShaderModule() is defined

hmm i don't see an equivalent createShaderModule in here:
https://gitlab.freedesktop.org/vivekvpandya/mesa/-/blob/d1f29adf926eb44453db1255834575a6f7169d5f/src/libre-soc/vulkan/libresoc_pipeline.c

also, enumerateInstanceDeviceProperties is empty:
https://gitlab.freedesktop.org/vivekvpandya/mesa/-/blob/d1f29adf926eb44453db1255834575a6f7169d5f/src/libre-soc/vulkan/libresoc_device.c#L259

whereas it is not, here:
https://gitlab.freedesktop.org/apinheiro/mesa/-/commit/07d01ebf6aae2f9ae71a8bea13a5d8acccb6280e#0b80c3a6757284417a6c75db460ee183cd5e80dd_0_35

i would recommend putting debug printfs at the top of
libresoc_GetInstanceProcAddr, to get a handle (ha ha) on what
functions are being looked for.  ah: it *might* also be worthwhile
actually checking out that very early version of the broadcom driver,
liberally sprinkling it with debug printfs at least at the start of
every function, and see what is called, and in which order.

by doing the same thing in the libresoc driver that would give you an
idea of what is missing.

the other thought that occurred to me: it could just be that expecting
createGraphicsPipelines to be called is too early, and that to trigger
it, a little more of the infrastructure has to be in place, such as
responding to vkinfo:
https://gitlab.axiodl.com/AxioDL/mesa/-/blob/abd629eb3d4027b89c13158e90c6732b412e550e/src/intel/vulkan/anv_device.c#L782

just a thought.

l.



More information about the Libre-soc-dev mailing list