[PATCH vkd3d 6/6] vkd3d-common: Rework debug infrastructure.

Henri Verbeet hverbeet at gmail.com
Thu May 12 08:57:47 CDT 2022


On Tue, 10 May 2022 at 20:21, Matteo Bruni <mbruni at codeweavers.com> wrote:
>
> Mostly so that the debug primitives don't depend on a shared
> variable.
>
> Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
> ---
> This allows to keep using a separate debug env var for vkd3d-shader
> even when building vkd3d as static lib(s). That will eventually make
> it possible to drop the related change in the vkd3d copy imported into
> Wine.
>
>  include/private/vkd3d_debug.h         | 32 +++++++++++++++++----------
>  libs/vkd3d-common/blob.c              |  2 ++
>  libs/vkd3d-common/debug.c             | 23 +++++++++----------
>  libs/vkd3d-common/error.c             |  2 ++
>  libs/vkd3d-common/memory.c            |  2 ++
>  libs/vkd3d-shader/d3dbc.c             |  2 ++
>  libs/vkd3d-shader/dxbc.c              |  2 ++
>  libs/vkd3d-shader/hlsl.c              |  2 ++
>  libs/vkd3d-shader/hlsl.l              |  2 ++
>  libs/vkd3d-shader/hlsl.y              |  2 ++
>  libs/vkd3d-shader/hlsl_codegen.c      |  2 ++
>  libs/vkd3d-shader/hlsl_constant_ops.c |  2 ++
>  libs/vkd3d-shader/hlsl_sm1.c          |  2 ++
>  libs/vkd3d-shader/hlsl_sm4.c          |  2 ++
>  libs/vkd3d-shader/preproc.l           |  2 ++
>  libs/vkd3d-shader/preproc.y           |  2 ++
>  libs/vkd3d-shader/spirv.c             |  2 ++
>  libs/vkd3d-shader/trace.c             |  2 ++
>  libs/vkd3d-shader/vkd3d_shader_main.c |  2 +-
>  libs/vkd3d/command.c                  |  2 ++
>  libs/vkd3d/device.c                   |  2 ++
>  libs/vkd3d/resource.c                 |  2 ++
>  libs/vkd3d/state.c                    |  2 ++
>  libs/vkd3d/utils.c                    |  2 ++
>  24 files changed, 73 insertions(+), 26 deletions(-)

I can't say I like this solution. In particular, sprinkling
VKD3D_DEBUG_ENV_NAME through the source seems undesirable. It should
be possible to do this in a way that allows defining the environment
variable only once per module. Separately, for the Wine integration, I
think it would make more sense to integrate with Wine's debug
facilities, so that e.g. WINEDEBUG=+d3d_shader and WINEDEBUG=+d3d12
simply do the right thing.



More information about the wine-devel mailing list