I'm having this weird issue getting adapter properties on Linux.
The first thing my code does after successfully requesting an adapter is dump it's properties using code like this:
```
void logAdapterProps(const wgpu::Adapter& adapter) {
wgpu::AdapterProperties props{};
adapter.GetProperties(&props);
SGD_LOG << "Dawn WGPU Adapter Properties:";
SGD_LOG << "Vender name:" << (props.vendorName ? props.vendorName : "???");
SGD_LOG << "Architecture:" << (props.architecture ? props.architecture : "???");
SGD_LOG << "Name:" << (
props.name ?
props.name : "???");
. ..etc...
```
However, this has started crashing on Linux builds with the error:
```
Error: Unexpected chained struct of type SType:: found on AdapterProperties chain.
at ValidateAndUnpack<dawn::native::AdapterProperties> (/home/marksibly/dev/libsgd/cmake-build-release/_deps/dawn-build/gen/src/dawn/native/ChainUtils_autogen.cpp:210)
```
The properties struct is not filled in correctly in this case.
I had a quick look at the GetProperties() code and all it does is assign a default AdaptorProperties() to the object you give it and call the 'real' wgpuAdapterGetProperties.
So I tried that myself directly without the assignment of the default (I already set it to default anyway) and it fixed the issue, so it would appear the AdapterProperties assignment operator is doing something unusual. Or maybe g++ on Linux is doing something strange, it's not happening to me on Windows or MacOS.
I did have a quick look at the assignment operator, and it does calls the dtor if certain fields are non-null (so you definitely don't want to pass it an uninitialzed object!), but they should be null because I've {} initialized it so I'm unclear what could be going wrong.
Also, this only seems to happen when I run from a shell and not from an IDE so I don't know for sure when it started as I usually start from an IDE.
I tried to report this as a dawn issue but that's all changed now and I get taken to the chromium issues page. Should I post there any way?
Bye,
Mark