Commit Graph

322 Commits

Author SHA1 Message Date
Brad Werth
5c2c840159
Prevent Metal from crashing when a still-open encoder is deallocated, resolve issue #2077. (#4023) 2023-08-28 18:23:35 -07:00
Fredrik Fornwall
bf324fb947
Make power_preference_from_env() respect WGPU_POWER_PREF=none (#4076)
Also update wgpu/README.md now that default() is None.
2023-08-18 11:05:34 +02:00
Teodor Tanasoaia
f58be7b8f1
DX12 set Features::VERTEX_WRITABLE_STORAGE based on the right FL (#4033) 2023-08-17 15:55:58 -04:00
Nicolas Silva
7b07f42beb
Use i32::MAX as the max buffer size for Dx12 (#4020) 2023-08-16 17:12:19 -04:00
Pieter-Jan Briers
e973a06268
Allow specifying minor GLES3 version (#3998) 2023-08-16 11:51:56 -04:00
Jim Blandy
e11526e23c
[vulkan] Don't free command buffers before destroying the pool. (#4059)
Calling `vkDestroyCommandPool` automatically frees all command buffers allocated
from that pool, so there is no need for `Device::destroy_command_encoder` to
explicitly call `vkFreeCommandBuffers` on the `CommandEncoder`'s `free` and
`discarded` lists.
2023-08-16 15:23:31 +02:00
hybcloud
57874e5c54
improved PR#4038 by using ash's definition instead (#4044)
of hard-coded c_str.
2023-08-15 07:29:24 +00:00
James0124
7544af0f83
Add validation in accordance with WebGPU setViewport valid usage fo… (#4058)
* Add validation in accordance with WebGPU `setViewport` valid usage for `x`, `y` and `this.[[attachment_size]]`.

`x` and `y` must not be negative, and the rect must be contained in the render target.

* Add changelog entry.
2023-08-15 09:15:19 +02:00
Kevin Reid
2bdb3196f9
Add an overview of RenderPass and how render state works. (#4055)
* Explain the general relationship of `set` and `draw` methods.
* Explain render state changes and that you can have lots of them.
* Specify default values of render state.
2023-08-14 22:24:27 +02:00
Connor Fitzgerald
f825ce4ac2
Fix Callback Ordering (#4036)
* Fix Callback Ordering

* Format & Changelog
2023-08-14 08:33:50 -04:00
Ryan Kaplan
014ae3fe43
Add get_mapped_range_as_array_buffer which - on wasm WebGPU builds - avoids copying mapped data into wasm heap (#4042)
Co-authored-by: Ryan Kaplan <ryan@Ryans-M2.local>
2023-08-13 16:02:16 +02:00
Jim Blandy
07f92c97b1
[vk] Don't request portability enumeration without the extension. (#4038) 2023-08-11 21:14:25 -04:00
Teodor Tanasoaia
c7da76a4c6
Validate DownlevelFlags::READ_ONLY_DEPTH_STENCIL (#4031) 2023-08-11 16:34:35 -04:00
Teodor Tanasoaia
5bbaca7d55
DX12 doesn't support Features::POLYGON_MODE_POINT (#4032) 2023-08-11 16:30:01 -04:00
Valaphee The Meerkat
359e392322
Update CHANGELOG.md (#4003) 2023-08-03 14:53:24 +00:00
Christopher Fleetwood
3305e88d63
feature: Timestamp queries (#3636)
Co-authored-by: Andreas Reich <r_andreas2@web.de>
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
Co-authored-by: Connor Fitzgerald <connor@modyfi.io>
2023-08-02 18:04:24 -04:00
Valaphee The Meerkat
494ae1a815
Add support for occlusion queries (#3402)
Co-authored-by: Leo Kettmeir <crowlkats@toaxl.com>
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2023-08-02 19:05:59 +00:00
JustAnotherCodemonkey
5b4c6b8ae4
List limits for Limits::downlevel_defaults and downlevel_webgl2_defaults in docs. (#3988)
* Add the docs. (And change max_buffer_size for default and downlevel_default to be more readable.)

* Put limits listed in documentation on seperate lines via bullet points.

* Update changelog.

* Fix fmt.

* Turn doc lists into testable code blocks with markers for changed values.
2023-08-02 10:20:20 +02:00
Teodor Tanasoaia
48078a800a
Derive storage bindings via naga::StorageAccess instead of naga::GlobalUse (#3985)
Removes the feature check for read-only and read-write storage textures as it's later checked by `create_bind_group_layout`.

335f40f85a/wgpu-core/src/device/resource.rs (L1505-L1518)

Also removes the `GlobalUse` checks from `check_binding_use` as naga is already checking those.

535701f6b2/src/valid/interface.rs (L639-L669)
2023-07-31 15:30:47 +02:00
Teodor Tanasoaia
adc43b5672
Omit texture store bound checks since they are no-ops if out of bounds on all APIs (#3975) 2023-07-25 17:04:54 +02:00
Bruce Mitchener
2a77bbd80d
Fix some typos. (#3965) 2023-07-23 08:15:20 +00:00
Ali
b93dc7c69a
Fixed: enabling PARTIALLY_BOUND_BINDING_ARRAY does not get enabled on vulkan backend (#3772) 2023-07-23 07:37:59 +00:00
Connor Fitzgerald
21098cdace
Add note about wgpu-info to changelog 2023-07-20 23:15:51 -04:00
Connor Fitzgerald
bdb98b1916 Chaneglog update 2023-07-20 23:14:11 -04:00
Nicolas Silva
4ab9dbea8f
Update max_bindings_per_bind_group from 640 to 1000 to reflect spec (#3942)
* Update max_bindings_per_bind_group from 640 to 1000 to reflect change in the spec.

* Add changelog entry.
2023-07-20 10:02:59 -04:00
Jinlei Li
d089b9488b
Ignore the exception values generated by the winit resize event (#3916) 2023-07-19 17:07:48 -04:00
Aaron Hill
fd5550cc89
Make RequestAdapterOptions.power_preference optional (#3903)
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2023-07-19 21:04:31 +00:00
Ashley
e4eb5b38ec
Fix ASTC feature selection in the webgl backend (#3934)
* Update glow to a new minor version, improve gles adapter astc feature selection
* Update Cargo.lock
* Add changelog entry
* Improve cfg flags to filter out emscripten
2023-07-17 14:40:53 +02:00
Nicolas Silva
7198d60f68
Validate that BufferDescriptor::usage is not zero (#3928)
* Validate that BufferDescriptor::usage is not zero.

* Add a changelog entry.
2023-07-14 22:41:34 +02:00
Wez Furlong
2af6d1bc63
Ensure X11 connections are closed (#3924)
Introduces a DisplayOwner struct to own both the library
and associated display pointer; their lifetimes are combined
in that struct.

The display pointer is encapsulated in a DisplayRef.

When DisplayOwner is dropped, it ensures that the DisplayRef
is correctly closed prior to unloading the library.

refs: https://github.com/gfx-rs/wgpu/issues/3813
2023-07-13 12:32:18 +02:00
Fredrik Fornwall
89f721f882
Make initialize_adapter_from_env take a compatible surface (#3905)
* Make initialize_adapter_from_env take a compatible surface

Add a compatible surface parameter to initialize_adapter_from_env, and
use that to make initialize_adapter_from_env_or_default always respect
its compatible_surface parameter.

---------

Co-authored-by: Andreas Reich <r_andreas2@web.de>
2023-07-10 09:27:02 +02:00
Connor Fitzgerald
a885840a49
Update changelog for 0.16.2 (#3917) 2023-07-09 05:20:11 +00:00
AdrianEddy
e85cc91b5d
Add support for importing external buffers (#3355) 2023-07-07 18:00:08 -04:00
Fredrik Fornwall
234dea18c4 Fix link to GPUVertexBufferLayout
Fixes #3342.
2023-07-05 20:08:22 -02:30
Fredrik Fornwall
1c43272d2a
Remove backend_bits from initialize_adapter_from_env (#3904)
Remove backend_bits from initialize_adapter_from_env, backends can
be specified using the backends field in InstanceDescriptor instead.
2023-07-05 18:21:39 +02:00
Fredrik Fornwall
17143c149c
Make shader write&read storage buffers match non readonly layouts (#3893) 2023-06-29 22:30:34 +00:00
daxpedda
88f18ed190
Don't implement Send or Sync on Wasm (#3691)
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2023-06-29 20:31:18 +00:00
AlbinBernhardssonARM
7c34cc86e8
Implement depth-clip-control using depthClamp (#3892) 2023-06-29 16:15:21 -04:00
Jinlei Li
757245cdfc
metal: support (simulated) visionOS (#3883) 2023-06-23 19:31:35 -04:00
Jinlei Li
cc203a66b1
web: use get_preferred_canvas_format() to fill SurfaceCapabilities (#3744)
* web: use `get_preferred_canvas_format()` to fill `formats` of `SurfaceCapabilities`

* Only keep preferred format as the first element

* Update CHANGELOG

* Find preferred format and move it to the first position in the formats.

* Add a note to preferred_format.

* Remove the unnecessary allocation.
2023-06-23 22:24:58 +08:00
Sven Sauleau
45efae315b
fix Wasm casing (#3878) 2023-06-21 20:54:07 +00:00
Andrew Wheeler(Genusis)
2ee2e1a770
Update RenderPass draw, draw_indexed, set_viewport and set_scissor_rect documentation (#3860) 2023-06-17 17:11:24 +00:00
Xiaopeng Li
f9fcb54ce4
Disable suballocation on Iris(R) Xe gpu (#3668)
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2023-06-15 20:18:38 +00:00
Pieter-Jan Briers
acb7712c5a
Allow empty scissor rects (#3863) 2023-06-15 15:49:06 -04:00
liquidev
dfa5400a78
GLES: on EGL, respect the user requesting a non-sRGB surface format (#3817)
* EGL: respect the user requesting a non-sRGB surface format
What used to happen was that sRGB was used whether you requested it or not.
This commit fixes that and now passing in a non-sRGB texture format in SurfaceConfiguration will result in a non-sRGB surface being created.

* add changelog entry about the EGL non-sRGB support change
2023-06-06 19:59:00 +02:00
Teodor Tanasoaia
2e4209c537
Add back components info of TextureFormats (#3843)
* add back components info of `TextureFormat`s
* add changelog
2023-06-06 19:28:46 +02:00
Jim Blandy
3f0aed789d
Don't report violations of VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912 (#3809)
As described in [Vulkan-ValidationLayers#5671], the validation layers don't understand debug ranges paired across different command buffers on the same queue, even though the Vulkan spec says:

> An application may open a debug label region in one command buffer and close it in another, or otherwise split debug label regions across multiple command buffers or multiple queue submissions. When viewed from the linear series of submissions to a single queue, the calls to vkCmdBeginDebugUtilsLabelEXT and vkCmdEndDebugUtilsLabelEXT must be matched and balanced.

Until this is fixed, wgpu should ignore this validation error to reduce noise in test runs.

Fixes #3733.

[Vulkan-ValidationLayers#5671]: https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/5671
2023-06-06 06:56:44 -04:00
Connor Fitzgerald
1d2a667b71
Fix trying to use a renderpass inside a compute pass (#3828)
* Fix trying to use a renderpass inside a compute pass

* Fix pipeline statistics test on mac

* Changelog
2023-06-05 09:05:59 -04:00
Connor Fitzgerald
1cb0bdcdef
Fix incorrect aspect in barriers when using emulated Stencil8 textures. (#3833) 2023-06-04 23:32:06 -04:00
Connor Fitzgerald
ad45f29bb6 Changelog backport 2023-06-01 01:55:55 -04:00