tests/shader_runner_metal: Implement resource copies.

This commit is contained in:
Henri Verbeet
2025-05-26 22:14:07 +02:00
parent 5899d8f54b
commit 2d90f51d57
Notes: Henri Verbeet 2025-06-11 20:37:50 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1560
2 changed files with 23 additions and 2 deletions

View File

@@ -169,7 +169,7 @@ float4 main(uint id : sv_sampleindex) : sv_target
clear rtv 0 0.0 0.0 0.0 0.0 clear rtv 0 0.0 0.0 0.0 0.0
draw quad draw quad
probe (32, 32) rgba(3.75, 0.25, 0.5, 1.0) probe (32, 32) rgba(3.75, 0.25, 0.5, 1.0)
todo(msl) copy rtv 0 srv 0 copy rtv 0 srv 0
[rtv 0] [rtv 0]
format r32g32b32a32-float format r32g32b32a32-float

View File

@@ -781,7 +781,28 @@ done:
static bool metal_runner_copy(struct shader_runner *r, struct resource *src, struct resource *dst) static bool metal_runner_copy(struct shader_runner *r, struct resource *src, struct resource *dst)
{ {
struct metal_resource *s = metal_resource(src);
struct metal_resource *d = metal_resource(dst);
struct metal_runner *runner = metal_runner(r);
id<MTLCommandBuffer> command_buffer;
id<MTLBlitCommandEncoder> blit;
if (src->desc.dimension == RESOURCE_DIMENSION_BUFFER)
return false; return false;
@autoreleasepool
{
command_buffer = [runner->queue commandBuffer];
blit = [command_buffer blitCommandEncoder];
[blit copyFromTexture:s->texture toTexture:d->texture];
[blit endEncoding];
[command_buffer commit];
[command_buffer waitUntilCompleted];
}
return true;
} }
static struct resource_readback *metal_runner_get_resource_readback(struct shader_runner *r, static struct resource_readback *metal_runner_get_resource_readback(struct shader_runner *r,