[Mesa-dev] [PATCH] util/disk_cache: Fix disk_cache_get_function_timestamp with disabled cache.

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Thu Jul 26 15:25:22 UTC 2018

On Thu, Jul 26, 2018 at 5:15 PM, Bas Nieuwenhuizen
<bas at basnieuwenhuizen.nl> wrote:
> On Thu, Jul 26, 2018 at 5:01 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> Hi Bas,
>> Pardon for joining so late.
>> On 18 July 2018 at 13:01, Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl> wrote:
>>> radv always needs it, so just check the header instead. Also
>>> do not declare the function if the variable is not set, so we
>>> get a nice compile error instead of failing to open a device
>>> at runtime.
>> AFAICT the ENABLE_SHADER_CACHE define is set on all POSIX platforms.
>> Back in the early days we had --enable-shader-cache which was removed
>> with d1efa09d342bff3e5def2978a0bef748d74f9c82
>> Apart from the reasons listed, we do not want to control this at
>> configure time since it will produce varying driver behaviour. Hence
>> multiple unhappy users, as they hit the codepath w/o cache.
>> Skimming through - I would imagine you're building with meson, which
>> has the explicit shader cache toggle.
>> I'm assuming Dylan had it based on early autconf builds?
>> We can drop that one and effectively revert this and the follow-up Android fix.
>> What do you think?
> ChromeOS disables it for reasons I'm currently not sure about:
> https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/master/media-libs/mesa/mesa-18.2_pre1.ebuild#197
> And since the primary use case for vulkan at the moment seems to be
> Android and I can conceive us not being able to use the cache there
> for reasons, I'm not sure if disabling the cache is really that
> unreasonable, though it is not ideal that they apparently override the
> upstream configure.

To give a bit more context on why it was disabled:

"Starting with commit 96fe36f7 in mesa, the disk shader cache has been
enabled. This feature attempts to use multi-threading during GPU
initialization while Chromium enforces single threading during the
initialization process. The conflict causes the system to hang during
boot. This patchset includes the following line in the non-9999 ebuild
file, which disables the feature and allows platforms to boot:

append-flags "-UENABLE_SHADER_CACHE"

> Since most of that stuff seems to be driven by GL, this is pretty much
> a "isolate radv from whatever people do on the GL side of things"
> patch.
>> Emil

More information about the mesa-dev mailing list