[GPU] Remove duplicated image layouts from texture bindings

This commit is contained in:
kuba 2026-10-01 14:46:15 +02:00
parent a721e38d34
commit 71b68bc755
3 changed files with 10 additions and 8 deletions

View File

@ -106,7 +106,6 @@ internal static unsafe partial class VulkanVideoPresenter
public ulong Address;
public ResourceSlotIdentifier ImageIdentifier;
public ImageRequest Request;
public TextureRequestResolution Resolution;
public CachedImage? CachedImage;
public uint MipLevel;
public Image Image;
@ -521,7 +520,6 @@ internal static unsafe partial class VulkanVideoPresenter
Address = texture.Address,
ImageIdentifier = imageIdentifier,
Request = request,
Resolution = resolution,
MipLevel = texture.MipLevel,
IsStorage = texture.IsStorage,
SamplerState = texture.Sampler,

View File

@ -146,7 +146,6 @@ internal static unsafe partial class VulkanVideoPresenter
Address = descriptor.BaseAddress,
ImageIdentifier = imageIdentifier,
Request = request,
Resolution = resolution,
IsStorage = storage,
DestinationSelect = words[3] & 0xFFFu,
Width = descriptor.Width,

View File

@ -428,9 +428,14 @@ public sealed class PresenterImageBindingTests : IClassFixture<HeadlessVulkanFix
var resource = presenter.Run(() => AcquireTexture(presenter, texture));
Assert.NotEqual(0UL, ((ImageView)GetFieldValue(resource, "View")).Handle);
var resolution = (TextureRequestResolution)GetFieldValue(resource, "Resolution");
Assert.Equal(resolution.Request.View.Format, resolution.ViewFormat);
Assert.NotEqual(Format.Undefined, resolution.ViewFormat);
var request = (ImageRequest)GetFieldValue(resource, "Request");
var expected = numericClass switch
{
TextureNumericClass.Uint => Format.R32Uint,
TextureNumericClass.Sint => Format.R32Sint,
_ => Format.R32Sfloat,
};
Assert.Equal(expected, request.View.Format);
presenter.Run(() => presenter.InvokeMethod("ResetImageBindings"));
presenter.Harness.Finish();
presenter.Harness.Shutdown();
@ -446,8 +451,8 @@ public sealed class PresenterImageBindingTests : IClassFixture<HeadlessVulkanFix
var resource = presenter.Run(() => AcquireTexture(presenter, texture));
Assert.NotEqual(0UL, ((ImageView)GetFieldValue(resource, "View")).Handle);
var resolution = (TextureRequestResolution)GetFieldValue(resource, "Resolution");
Assert.Equal(Format.D32Sfloat, resolution.ViewFormat);
var request = (ImageRequest)GetFieldValue(resource, "Request");
Assert.Equal(Format.D32Sfloat, request.View.Format);
presenter.Run(() => presenter.InvokeMethod("ResetImageBindings"));
presenter.Harness.Finish();
presenter.Harness.Shutdown();