Commit Graph

77 Commits

Author SHA1 Message Date
Mrozek, Michal d6dd229543 Fail create allocation if map is unsuccessful.
- This way we will fail whenever mapping is unsuccessful instead of creating
Graphics Allocation that is in undefined state.

Change-Id: I50358d4564cd3fba0f6d05ab47cbbbaffbd9ce1c
2019-06-18 15:29:56 +02:00
Mateusz Jablonski 394be1aabe Move updating wddm paging fence value to separated method
Related-To: NEO-2881

Change-Id: If051c5f11b7ffbca52407d6ac883f15c4633c5bb
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-06-06 10:12:50 +02:00
Mateusz Jablonski a6bcdfe9de Move definition of Wddm::configureDeviceAddressSpace to separated file
Related-To: NEO-3155

Change-Id: I1c459384a0285358620a5624655261858b0313ba
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-06-04 10:54:01 +02:00
Zbigniew Zdanowicz e2906fcdf1 Move interlockedMax to core helpers
Change-Id: I5496ea963e68e0ef1e107c860112b7123d38aa81
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2019-05-28 17:38:17 +02:00
Dunajski, Bartosz 0f87e9aa1a Rename HardwareInfo members
Change-Id: I85f56b677bafdd75dd958b488522393fc18b68af
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2019-05-09 09:13:55 +02:00
Dunajski, Bartosz bb80d327c7 Move HardwareInfo ownership to ExecutionEnvironment [1/n]
Change-Id: I5e5b4cc45947a8841282c7d431fb69d9c397a2d4
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2019-05-08 16:11:01 +02:00
Venevtsev, Igor f77cd94cd5 [1/n] Use GfxPartition for 32-bit allocations - WddmMemoryManager
Related-To: NEO-2877

Change-Id: Ie3d94f68d5c9958b0b7bade600b964b778aeb4cf
Signed-off-by: Venevtsev, Igor <igor.venevtsev@intel.com>
2019-04-18 16:41:38 +02:00
Venevtsev, Igor 3a008fafc6 Revert "[1/n] Use GfxPartition for 32-bit allocations - WddmMemoryManager"
This reverts commit 2bb451e76d922861673e052f5f889658ac7db15f.

Change-Id: I1deada59a291a96ef88c8b9b4f2b28861ad27347
Signed-off-by: Venevtsev, Igor <igor.venevtsev@intel.com>
2019-04-12 20:59:40 +02:00
Venevtsev, Igor fac6ddaebc [1/n] Use GfxPartition for 32-bit allocations - WddmMemoryManager
Related-To: NEO-2877

Change-Id: I13621bc984e8bb92bea82c07044d9a40bc9ca550
Signed-off-by: Venevtsev, Igor <igor.venevtsev@intel.com>
2019-04-10 12:58:26 +02:00
Maciej Plewka 9e52684f5b Change namespace from OCLRT to NEO
Change-Id: If965c79d70392db26597aea4c2f3b7ae2820fe96
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2019-03-26 15:48:19 +01:00
Piotr Fusik db9afd06cd Remove EngineInstanceT.
Change-Id: I08543b5f4ef5e91e6beb8390d448e53702cd9dac
Signed-off-by: Piotr Fusik <piotr.fusik@intel.com>
2019-03-20 10:56:22 +01:00
Mateusz Jablonski 5367440fab Refactor Wddm map gpu address method
Change-Id: I9d3d8675bf80af4079e25b84ba6e09b7883c9e28
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-03-20 08:40:47 +01:00
Venevtsev, Igor ddf3aa186d Use HEAP_STANDARD for Limited-range allocations
Change-Id: I8b35cda2b5542e98a83021b4ce1c9f5118e6697d
Signed-off-by: Venevtsev, Igor <igor.venevtsev@intel.com>
2019-03-19 10:18:21 +01:00
Zbigniew Zdanowicz 8e743cc1bd Refactor Wddm interface of mapping GPU VA
Change-Id: Ic807dfb17fd0ab664af281db757e48b0cc424fcb
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2019-03-15 07:50:53 +01:00
Zbigniew Zdanowicz cdb52400c4 Add new functions reserving address range to Memory Manager
Change-Id: I947203c24495c9e5a206b95bb0c69440824586b6
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2019-03-14 15:06:11 +01:00
Mateusz Jablonski 395e79fee8 Add support for many GMMs in Graphics Allocation
Change-Id: I955b8dd50b502f91700c5529d0a0a291632aa157
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-03-13 15:44:45 +01:00
Venevtsev, Igor 74f1896c03 Expose GfxPartition to shared MemoryManager
Change-Id: I039e463f90e88c0ed8e9505cc770c373420ff567
Signed-off-by: Venevtsev, Igor <igor.venevtsev@intel.com>
2019-03-12 09:25:50 +01:00
Mateusz Jablonski 3f690e1758 Dont unlock/evict wddm allocations during releasing memory
Change-Id: Ib934867886a883a22fde2f0c03e16338dc215e65
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-03-11 10:20:09 +01:00
Mateusz Jablonski 5b22a50b28 Allow to create WddmAllocation with multiple handles
Change-Id: Iac9df91b08a6ce610b985586dfb6b5f63dc668cb
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-03-07 13:29:00 +01:00
Mateusz Jablonski e721f7c08c Cleanup Wddm interface 3/3
don't pass the entire WddmAllocation when only handle is needed

Change-Id: I208a64c81767589a2ac8aba0e717d54426209ecd
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-03-06 10:03:38 +01:00
Mateusz Jablonski 4605a48170 Cleanup Wddm interface 2/n
don't pass the entire WddmAllocation to createAllocation methods

Change-Id: Ibd4c684a362edbe3b2c520b73b71246fed5a9399
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-03-06 09:30:14 +01:00
Mateusz Jablonski 03527f496d Cleanup Wddm interface 1/n
pass const D3DKMT_HANDLE * to makeResident/evict/destroyAllocation calls
remove gpuPtr from WddmAllocation

Change-Id: Ia5ca162946a2d893d4f56c37f8027eab02af90b0
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-03-05 17:28:29 +01:00
Dunajski, Bartosz 0939743874 Pass OsContextWin object during Wddm context creation
Change-Id: Iba8d801bb6af4e9d28681caddb9c487500a42c8c
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2019-03-04 09:11:59 +01:00
Filip Hazubski 8b57d28116 clang-format: enable sorting includes
Include files are now grouped and sorted in following order:
1. Header file of the class the current file implements
2. Project files
3. Third party files
4. Standard library

Change-Id: If31af05652184169f7fee1d7ad08f1b2ed602cf0
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2019-02-27 11:50:07 +01:00
Mrozek, Michal ce77425428 Add support for reserveGpuVirtualAddress.
Change-Id: I068df0dd3b2064cdb93be1c4408eeb86ff264d2f
2019-02-26 12:01:17 +01:00
Katarzyna Cencelewska edb3e14147 Fix for enum's name
change lowercase 'b' for uppercase 'B'

Change-Id: I35f973bc7966e9d5b9f38d4e4a370215e80012ac
2019-02-22 11:59:17 +01:00
Piotr Fusik 75edea81bb Virtual address space partitioning on Linux [2/n]
Move selectHeap from Wddm to MemoryManager.
Set DrmAllocation::origin.

Change-Id: I5d412e35d524d1f31174893b9ce1d3b1e98eee96
2019-02-20 14:43:08 +01:00
Jablonski, Mateusz ed6381a66a Use HEAP_STANDARD64Kb when cpu access is required
Change-Id: I3a451b618f1b72836cd640ed510e874cf2d60624
Signed-off-by: Jablonski, Mateusz <mateusz.jablonski@intel.com>
2019-02-19 10:36:15 +01:00
Piotr Fusik 9af011809f Make HeapIndex and GraphicsAllocation::origin not specific to Windows.
Change-Id: Ie5a26b45c0b5eff0daf047361d8c992bd3c65ba7
2019-02-18 08:47:49 +01:00
Mateusz Jablonski 0e55fe0801 Fix lock usage in wddm
Change-Id: I3532b97a1b57747621e106b03263bfb070b7b05a
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-02-08 13:05:09 +01:00
Hoppe, Mateusz cb37f2a779 Add /we4189 switch to CMAKE_CXX_FLAGS for MSVC.
- treat unused local variables warnings as error in Debug

Change-Id: I2da08b72e0f0083d3cdf932fbf92ef4981a88615
2019-02-08 12:06:04 +01:00
Jablonski, Mateusz e095ac834d Windows: use HEAP_INTERNAL in 32bit scenarios
Change-Id: I652727303eec45cd3547bd98bec42f276000d9b4
Signed-off-by: Jablonski, Mateusz <mateusz.jablonski@intel.com>
2019-02-05 19:04:06 +01:00
Mateusz Jablonski fff8be32f4 Dont force system memory for internal allocations
use HEAP_INTERNAL_DEVICE_MEMORY for internal allocations

Change-Id: Id70caa30cd1e9c79df60773227d72b09541e4b77
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-02-01 16:31:34 +01:00
Hoppe, Mateusz c59bf5a6ea Do not debugBreak when createAllocation fails with GRAPHICS_NO_VIDEO_MEMORY
- this path is handled with host_ptr copy

Change-Id: If3f2c49f3c43262e018a43aff9f1b538daefc577
2019-02-01 09:33:22 +01:00
Mateusz Jablonski c04ba163a0 Simplify selecting heap in Wddm::mapGpuVirtualAddressImpl method
Change-Id: Id6eb5b0df1c705b5fadde62d20513fe15edf1e27
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-01-30 16:38:46 +01:00
Mateusz Jablonski 8056d7c5f0 Cleanup headers included in wddm.h
Change-Id: Ibb9b84b8f1ea2c69ddd134451b06f0e505c841b4
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-01-29 12:43:29 +01:00
Mateusz Jablonski f90cfb9199 Fix typo: freeGpuVirtualAddres -> freeGpuVirtualAddress
Change-Id: I6cbec2bd4ec5863e2c5df75aa60b3a7a0dbb94c6
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-01-24 16:08:00 +00:00
Mateusz Jablonski f332bf369e Set allocation's lock state only in lockResource and unlockResource methods
Change-Id: I60f35801287166f5bdb0dfcd31ff0118c56ec22a
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-01-24 15:15:27 +01:00
Mateusz Jablonski b229df3cc4 Remove debug flag EnableMakeResidentOnMapGpuVa
Change-Id: I12063762818ed58861ec80f0d8a798312374d198
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-01-23 14:43:40 +01:00
Mateusz Jablonski ad3bfd84cb Add functionality to make resident before locking resource
Change-Id: I0963c1edcb43f409e9dd62cb46a0da1f2b05667b
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2019-01-22 08:28:12 +01:00
Pawel Wilma dcbdbd92b9 Wait for paging frence after calling makeResident() on mapGpuVa
Change-Id: I289c4be891b2d7c1b50a0100cbdde8688f3068d5
Signed-off-by: Pawel Wilma <pawel.wilma@intel.com>
2019-01-17 10:41:28 +01:00
Pawel Wilma 5094c630f7 Force resource locking on transfer calls
Add debug variables to force resource locking on memory transfer calls
and to call makeResident() on mapVirtualAddress() call.

Change-Id: Ifa78d951fcb81812b10a98252bd414124dec9c74
2018-12-14 12:25:28 +01:00
Piotr Fusik 0b839722f4 Don't store preemption mode in Wddm.
Change-Id: I6088e5fec65b6910fefb42ec9735181867c44a1b
2018-12-10 14:48:52 +01:00
Mrozek, Michal 2ca3e4c4e5 Ensure that allocations in 4GB heap have non 0 GPU address to patch.
- That address is used later to deduce that allocation is non null
- If we have address 0 it is incorrectly detected as null ptr on the GPU.

Change-Id: I45e1bb31f1788528327da35bfdcc13f3fa6beec2
2018-12-06 09:06:38 +01:00
Mrozek, Michal 09f3f4e856 Move heap32[0] to heap32[3].
Change-Id: Icea6eef5646894283725e29ce7ee930284af2673
2018-12-03 09:32:36 +01:00
Dunajski, Bartosz 2d77b86e70 Allow Device creating multiple CSRs [5/n]
- Move Engine type to OsContext
- Move OsContext to CSR
- Improve EngineMapper logic
- CompletionStamp cleanup

Change-Id: I935cb7169c8c48cd09837e20e3da06f6dd3437b9
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-11-27 14:25:04 +01:00
Maciej Dziuban 42b2ed6a90 Register trimCallback with WddmResidencyController as Context
Change-Id: Ibc34aac17e79df3a3096c29c34506039e2c5bdcc
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-11-05 17:43:20 +01:00
Maciej Dziuban dc4de3c31b Move trimResidency functions to WddmResidencyController
Change-Id: I046fd34d5336b767ed38eda31e58e4a35ceee5f8
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-10-29 12:19:50 +01:00
Maciej Dziuban bd431edb46 Return trimCallbackHandle from register method instead of storing in Wddm
Change-Id: Iddfb6a926311480e355d52e5bf3e6379ec96f7a9
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-10-25 17:17:52 +02:00
Maciej Dziuban f374696f1d Move MonitoredFence to WddmResidencyController
Change-Id: Iac99e7d730fda26d13feed56d5e4c50adf115e51
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-10-24 09:35:42 +02:00