vkd3d-shader/hlsl: Implement the ByteAddressBuffer.Load*() methods.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
Nikolay Sivov
2024-11-04 16:57:06 +01:00
committed by Henri Verbeet
parent 1a28e7d9c6
commit e5ba79b4f1
Notes: Henri Verbeet 2024-11-06 23:01:27 +01:00
Approved-by: Elizabeth Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1245
6 changed files with 161 additions and 8 deletions

View File

@@ -478,9 +478,19 @@ static void init_resource_srv_buffer(struct d3d11_shader_runner *runner, struct
resource->resource = (ID3D11Resource *)resource->buffer;
srv_desc.Format = params->desc.format;
srv_desc.ViewDimension = D3D11_SRV_DIMENSION_BUFFER;
srv_desc.Buffer.FirstElement = 0;
srv_desc.Buffer.NumElements = params->data_size / params->desc.texel_size;
if (params->is_raw)
{
srv_desc.ViewDimension = D3D11_SRV_DIMENSION_BUFFEREX;
srv_desc.BufferEx.FirstElement = 0;
srv_desc.BufferEx.NumElements = params->data_size / params->desc.texel_size;
srv_desc.BufferEx.Flags = D3D11_BUFFEREX_SRV_FLAG_RAW;
}
else
{
srv_desc.ViewDimension = D3D11_SRV_DIMENSION_BUFFER;
srv_desc.Buffer.FirstElement = 0;
srv_desc.Buffer.NumElements = params->data_size / params->desc.texel_size;
}
hr = ID3D11Device_CreateShaderResourceView(device, resource->resource, &srv_desc, &resource->srv);
ok(hr == S_OK, "Failed to create view, hr %#lx.\n", hr);
}