x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Office Holiday

Epic Games' offices will be on holiday from June 22nd to July 7th. During this period support will be limited. Our offices will reopen on Monday, July 8th. 

Setting r.graphicsAdapter=1 causes exception

I am using a Github source build version 4.12.3. I have two NVidia graphics cards in my system. I placed r.graphicsAdapter=1 in my ConsoleVariables.ini file of my packaged build, and when I run an array index out of bounds exception is thrown near line 371 of engine source file WindowsD3D11Device.cpp. The problem is that the AdapterDescription array is not always populated with a description for every adapter index, yet the code assumes so and attempts to reference the array by an index beyond the array size. This file appears to have been modified in 4.12.3 for changes related to HMD adapters, but it clearly was never tested to verify it could select adapter 1. A simple solution is to populate the array with the description of every adapter encountered just after the adapter description is read.

Product Version: UE 4.12
Tags:
more ▼

asked Jul 07 '16 at 07:03 PM in Bug Reports

avatar image

wjhcc
8 2 4

avatar image Sean L ♦♦ STAFF Jul 07 '16 at 08:01 PM

Hello,

  • Could you provide the logs from your project's Saved->Logs folder after the crash occurs?

  • Could you please cause the crash again and provide your Machine ID from the Crash Reporter window and ensure to hit Send & Close on the report?

avatar image wjhcc Jul 08 '16 at 01:40 PM

I have attached a zip of the saved/logs folder. Opening the mini dump in VS will take you right to the line of the 4.12.3 code I indicated in my first post (accessing the array of adapter descriptions beyond the size of the array). No Crash Reporter window appears when this problem occurs. In fact no windows come up at all. I provided an image of the call stack from the mini dump also.

alt text

logs.zip (41.8 kB)
callstack.jpg (198.9 kB)
(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

Hello,

After investigating this issue further, it appears that this is a known issue, UE-17513. However, the issue is not on our end. Other users who have experienced this crash had to update their DisplayLink drivers in order to fix this crash.

Here is some more information regarding this issue:

https://answers.unrealengine.com/questions/243697/crash-in-48-1.html

http://answers.microsoft.com/en-us/windows/forum/windows_7-performance/windows-explorer-error-we-has-stopped/ce5030fa-0c67-e011-8dfc-68b599b31bf5?auth=1

Let me know if that helps.

Have a great day

more ▼

answered Jul 08 '16 at 01:52 PM

avatar image

Sean L ♦♦ STAFF
43.6k 485 152 442

avatar image wjhcc Jul 08 '16 at 02:58 PM

Thank you for your research on this problem. I am afraid the issue you referred to is not related. I would like to see the UE-17513 JIRA if that would be possible, but I suspect it is a different issue (not to mention quite old). My issue does not occur in 4.12.2, but does occur in 4.12.3 and there were changes to the file I referred to in 4.12.3 to support HMD adapters. This is a basic problem unrelated to drivers. There is a loop that enumerates the graphics adapters and tries to determine which adapter to use. The code attempts to take into account which adapters are integrated, which are not, and also if the user specified to use a particular adapter (via an ini file entry r.graphicsAdapter). The code uses an array to hold the adapter descriptions of the cards it encounters, however in some cases this array does not get populated with every card in the system. Near the end of the function, an adapter index is used to reference this array, and in the case I describe, this index is beyond the size of the array. This is a very basic problem and easily reproduced. I have fixed the problem myself in my code base and I am just trying to report to you so you can do the same. And just to be clear, I don't believe engine code should experience an array index out of bounds exception even if a driver need updating or whatever. I hope I have made the problem clear so someone there at Epic can address it. Thank you for your time.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question