View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002495 | NoesisGUI | Unity3D | public | 2023-01-19 20:35 | 2023-02-14 12:05 |
Reporter | stonstad | Assigned To | sfernandez | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 3.1.5 | ||||
Target Version | 3.1.7 | Fixed in Version | 3.1.7 | ||
Summary | 0002495: Texture Corruption Built Assembly | ||||
Description | This is a revival of the prior bug concerning runtime corruption of textures imported and used in Noesis due to an issue with texture pointers. This time, the bug manifests in built Unity players. I tried reimporting all UI textures and assets. While that previously fixed the issue in the editor, the issue manifests in all builds. It's an instant crash for the game's player. Encl. crash.dmp Encl. player.log Encl. screenshot of texture corruption. | ||||
Steps To Reproduce | Encl. crash.dmp Encl. player.log Encl. screenshot of texture corruption. | ||||
Tags | No tags attached. | ||||
Platform | Any | ||||
related to | 0002453 | resolved | sfernandez | DragEventArgs_GetAllowedEffectsHelper Crash |
related to | 0002496 | resolved | sfernandez | NoesisViewEditor.OnPreviewGUI Crash |
Just adding a note here that with this particular bug, it isn't possible to create a working Unity player. I'm available to perform any/all troubleshooting necessary to resolve this issue, as it is a release blocker. Thanks. | |
The original issue w/ detail is here: https://www.noesisengine.com/bugs/view.php?id=2453 I tried a fresh Unity build but that did not work. This is happening in Unity 2022.2.1f1. |
|
Is this using D3D12? | |
Initialize engine version: 2022.2.1f1 (4fead5835099) Direct3D: Version: Direct3D 11.0 [level 11.1] Renderer: NVIDIA GeForce RTX 4080 (ID=0x2704) Vendor: NVIDIA VRAM: 16064 MB Driver: 31.0.15.2802 |
|
I think this raises an important question -- what is it that I am doing that is different, even potentially incorrect compared to other Noesis users? 1. Is it specific to Unity version, meaning that other Noesis users have not released a build using Unity 2022.2.x or later? 2. Is it due to the quantity and type of images I am referencing in my image resource dictionaries? 3. Is it a Unity bug that manifests rarely? Jesus, should I run the scirpt the looks for texture pointer changes again, and have it dump to the log file within a build executable? |
|
So far, I don't know why this is happening on your project and not in others projects. I have been testing different scenarios today, I am unable to break anything (even using hundreds of textures). So, first thing we need to do is making sure we are in the same scenario as 0002453, so yes, please, run the script to search for pointer changes and let's focus in one texture only for now. |
|
Are you using more plugins that could interfering with us? | |
I'm not aware of any plugins that might affect texture handles. I'll run the previous script and report back here. | |
I'm working on this right now and I have some questions that might help me better identify a cause. - When is the texture memory address assigned? i.e. is this a real memory address that is assigned upon load to GPU memory, or is this a Unity handle assigned on import? - If the address is loaded incorrectly from the start, would I be able to detect a change? - These textures currently exist in a folder within assets. They are not in \Resources, and they are not part of an asset bundle. Is this OK? - Is there a way to get the texture handle from a Noesis ImageSource? This would let me cycle through all textures used in the UI and scan for handle changes. |
|
The texture pointer does not appear to be changed -- but incorrect textures are shown. i.e. instead of a weapon I see a player's hat as a rectangle's image source. Is there a way to reliably iterate through the resources in a resource dictionary? |
|
Your answers to these questions will definitely help me out. In the interim, I am going to send over a stripped down project. | |
OK, the problem only manifests when images are created within a visual tree containing a top-level ViewBox which is programmatically sized. Still researching. | |
This is likely not a Unity pointer issue. I think it is related to Noesis pointer arithmetic and how images (and underlying textures) are displayed in a visual tree with a transformation matrix. My reproduction workflow is to have a visual tree with the following: NoesisView -> UserControl -> ViewBox -> CustomUserControl -> WrapPanel -> { 100 Rectangles } - CustomUserControl sets its width/height based on a desired size and scaling ratio. I don't use Noesis scaling because it wasn't available when I built my UI. - If the rectangles have no brush set the compiled binary does NOT crash - If the rectangles are assigned textures the compiled binary DOES crash. This occurs in the editor, sometimes. However, it is consistent in binaries. - It appears that if the wrap panel does not exceed a certain dimension a crash does not occur. ** edit. This is not it. I have no idea why it selectively fails. |
|
Thanks for the time creating this repro! | |
Were you able to reproduce the behavior with the test project? | |
It appears that disabling mipmap generation stops texture commingling and crashes. | |
We have been extremely busy with 3.2 Beta2 (planned for releasing today). After that, we will start testing your project. Thanks for your patience |
|
I'm working on your repro project, building the player with our library in debug. Let's see if this provides some useful info. I'll keep you informed. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2023-01-19 20:35 | stonstad | New Issue | |
2023-01-19 20:35 | stonstad | File Added: Stellar Conquest.zip | |
2023-01-19 20:35 | stonstad | File Added: Textures Corruption.jpg | |
2023-01-19 22:50 | stonstad | Note Added: 0008232 | |
2023-01-19 22:53 | stonstad | Note Added: 0008233 | |
2023-01-20 11:45 | jsantos | Relationship added | related to 0002453 |
2023-01-20 11:48 | jsantos | Assigned To | => jsantos |
2023-01-20 11:48 | jsantos | Status | new => assigned |
2023-01-20 11:48 | jsantos | Note Added: 0008235 | |
2023-01-20 11:52 | jsantos | Target Version | => 3.1.7 |
2023-01-20 11:53 | jsantos | Status | assigned => feedback |
2023-01-20 14:45 | stonstad | Note Added: 0008238 | |
2023-01-20 14:45 | stonstad | Status | feedback => assigned |
2023-01-21 22:17 | stonstad | Note Added: 0008239 | |
2023-01-24 18:31 | jsantos | Note Added: 0008240 | |
2023-01-24 18:31 | jsantos | Status | assigned => feedback |
2023-01-24 18:31 | jsantos | Note Added: 0008241 | |
2023-01-25 00:00 | stonstad | Note Added: 0008242 | |
2023-01-25 00:00 | stonstad | Status | feedback => assigned |
2023-01-27 16:19 | stonstad | Note Added: 0008243 | |
2023-01-27 16:54 | stonstad | Note Added: 0008244 | |
2023-01-27 17:07 | stonstad | Note Added: 0008245 | |
2023-01-27 20:21 | stonstad | Note Added: 0008246 | |
2023-01-27 20:25 | stonstad | Note Added: 0008247 | |
2023-01-27 20:31 | stonstad | Note Edited: 0008247 | |
2023-01-27 20:44 | stonstad | Note Edited: 0008247 | |
2023-01-27 20:47 | stonstad | Note Edited: 0008247 | |
2023-01-28 02:01 | jsantos | Note Added: 0008249 | |
2023-01-28 02:01 | jsantos | Assigned To | jsantos => sfernandez |
2023-01-30 22:56 | stonstad | Note Added: 0008252 | |
2023-01-31 13:54 | stonstad | Note Added: 0008253 | |
2023-02-02 17:59 | jsantos | Note Added: 0008256 | |
2023-02-03 21:09 | sfernandez | Note Added: 0008258 | |
2023-02-08 14:38 | sfernandez | Status | assigned => resolved |
2023-02-08 14:38 | sfernandez | Resolution | open => fixed |
2023-02-08 14:38 | sfernandez | Fixed in Version | => 3.1.7 |
2023-02-14 12:05 | sfernandez | Relationship added | related to 0002496 |