- /* Executable implies readable */
- if ((args->flags & PANFROST_BO_NOREAD) &&
!(args->flags & PANFROST_BO_NOEXEC))
return -EINVAL;
Generally, executable also implies not-writeable. Should we check that?
We were allowing it until now, so doing that would break the backward compat, unfortunately.
Not a problem if you only enforce this starting with the appropriate UABI version, but...
Steve also mentioned that the DDK might use shaders modifying other shaders here [1]
What? I believe it, but what?
For the case of pilot shaders, that shouldn't require self-modifying code. As I understand, the DDK binds the push uniform (FAU / RMU) buffer as global shader memory (SSBO) and uses regular STORE instructions on it. That requires writability on that BO but that should be fine.