SWDEV-68792 - [OpenCL][HWS/CWSR] Adding support for Hardware Scheduler and Compute Wave Save restore (CWSR) feature on ORCA
Adding a temporary w/a for a CP uCode bug in HWS mode. Due to this bug, CP uCode loops through a RUNLIST unless there is a submission on all queues in HWS mode. This causes some overhead and performance drop in PCMark8 on CZ in HWS mode. To work around this issue, it was suggested to submit a dummy packet during initialization on all available queues on HWS mode so that CP uCode can break the loop. This w/a should be removed once CP uCode provides a final fix for this issue.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/9616/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#160 edit
SWDEV-86885 - [CQE OCL][2.0][QR][CFX] Few SDK 64 and 32 bit Samples resulting in Soft/hard hangs with faulty cl: 1233743
Unsubmit CL1233743 because of problems with CFX.
I have not been able to figure out how Cl1233743 would cause a problem. It sets a flag, to disable new code... I would expect the new code to be the problem, not the disable.
So, in case this unsubmit does not elminate the problem, CL1233686 is shelved, to use #ifndef CAL_SUPPORT around the new code in CL1226184.
CL1233743 was submitted for:
SWDEV-86253 - [QR] 6 to 7% performance drop is observed in BasemarkCL test
CL1226184 adds serialization to LHIO, because pxproxy accesses global state, without locks, leading to crash, etc.
To fix OpenCL perf regressions, allow unserialized access to pxproxy. It may be that OpenCL design leads away from racy behavior, so it may be safe. This was checked in to gather information. What software gets perf drops? Does any software get fixed?
The dangerous functions are CreateDevice, CreateContext, because the handles from the OS are saved in global caches, and if those global caches are modified in one thread, while other threads are looking-up from the caches - that is a problem.
CL1226184 was submitted for:
SWDEV-80442 - [QR][Adobe Premier Pro CS6] TDR/App Crash observed while resizing the video window within workspace
TC: http://ocltc:8111/viewModification.html?modId=66278&personal=true
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#159 edit
SWDEV-86253 - [QR] 6 to 7% performance drop is observed in BasemarkCL test
CL1226184 adds serialization to LHIO, because pxproxy accesses global state, without locks, leading to crash, etc.
To fix OpenCL perf regressions, allow unserialized access to pxproxy. It may be that OpenCL design leads away from racy behavior, so it may be safe. This was checked in to gather information. What software gets perf drops? Does any software get fixed?
The dangerous functions are CreateDevice, CreateContext, because the handles from the OS are saved in global caches, and if those global caches are modified in one thread, while other threads are looking-up from the caches - that is a problem.
TC: http://ocltc:8111/viewModification.html?modId=66278&personal=true
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#158 edit
SWDEV-79308 - Use 64-bit to calculate the scratch buffer size for OCL. We observed that the computed scratch buffer size could be > 4G when compilier optimization option is not used.
Cross branch change - requires CL1231547.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#157 edit
SWDEV-79308 - Resubmit of CL1228064 with restriction of mininum scratch buffer size of 64K if a scratch buffer is needed.
Reduce the total scratch buffer size by a factor of 4, which in effect reducing the max. scratch waves from 32 to 8, to avoid the required total scratch buffer size exceeds the available local memory.
Made sure the scratch buffer size is aligned with 64K boundary
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#235 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#156 edit
SWDEV-79308 - Resubmit of CL1226881 with the fix of the SC sanity check issue. Reduce the total scratch buffer size by a factor of 4, which in effect reducing the max. scratch waves from 32 to 8, to avoid the required total scratch buffer
size exceeds the available local memory.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#233 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#154 edit
SWDEV-79308 - Back out changelist 1226881
Causes failures in execution model, math and pipes
http://ocltc.amd.com:8111/viewLog.html?buildId=14142599&tab=buildResultsDiv&buildTypeId=TestsOpenCLScSanity_BonaireConformanceWin764bit
Reduce the total scratch buffer size by a factor of 4, which in effect reducing the max. scratch waves from 32 to 8, to avoid the required total scratch buffer
size exceeds the available local memory.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#153 edit
SWDEV-79308 - Reduce the total scratch buffer size by a factor of 4, which in effect reducing the max. scratch waves from 32 to 8, to avoid the required total scratch buffer
size exceeds the available local memory.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#152 edit
SWDEV-66693 - OpenCL Runtime HW Debug support development - use flag, instead of getenv() call, in IOL to indicate the enablement of HW Debug.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#151 edit
SWDEV-77172 - IOMMUv2 changes for Windows 10
- Clear passing SVM flag from top level and fix GL interop on SVM
- Add\Remove gpuvmOffset before WDDM calls as its added manually for SUA model
ReviewBoardURL = http://ocltc.amd.com/reviews/r/8914/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#230 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDeviceGL.cpp#25 edit
SWDEV-77172 - IOMMUv2 changes for Windows 10
- Pass the GPUVM offset to MonitoredFence GPUVA as well
- Other minor changes for SVM
ReviewBoardURL = http://ocltc.amd.com/reviews/r/8729/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#148 edit
SWDEV-78052 - [CQE-OCL][DTB][QR][LNX]RQ conf test "Multiple device context" fails in few asics due to CL#1196902
- Restore synchronization on the DMA engine. OCL doesn't require a sync, because resource isn't busy on the CAL device. However without sync there are less CBs available. Conformanace multidevice test will create around 60 queues, instead of 70
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#147 edit
SWDEV-77545 - Relax Cypress restriction on SDMA copy
- The original check for offest was wrong. We have to check the linear buffer alignment
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#145 edit
SWDEV-77545 - Relax Cypress restriction on SDMA copy
- Relax the old condition to match SI+ restriction
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#144 edit
EPR #425801 - Only apply optimize init sequeuce for Windows 10 - to avoid issue observed in EPR#425801 for Win7.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#140 edit
EPR #424190 - IOMMU2/SVM on CZ Win10, Optimization_1
- Map can now return the surface address directly as we do system memory allocations that GPU can rw via IOMMUv2.
- Unpack shaders binary to the shader surface directly, skip unmap which saves a lot of CPDMA calls.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/8386/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#138 edit
ECR #304775 - Disable Pre-SI asics initialization in runtime. EG and NI are no longer supported from 15.30
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudefs.hpp#125 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#519 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#135 edit
EPR #397491 - Disable 32 bit OCL2.0 on Win 10 for now. isWindows10OrLater() call doesn't work. So, passing a flag from GSL to runtime to disable 32 bit OCL2.0 on Win 10.
http://ocltc.amd.com/reviews/r/8234/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#321 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#133 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/backend.h#8 edit
EPR #397491 - Back out changelist 1177450. Disable 32 bit generic address space
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#130 edit
EPR #397491 - Enable generic address space for 32 bit on Windows
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#129 edit
EPR #394700 - SubAllocation Scheme for ConstantBuffers Implemented in GLL.
This CL introduces sub-allocation for constant buffer for all Asics and currently supported by GLL, it can easily be opted in by OpenCL, OES as well.
OpenCL changes for Sub-allocation scheme for constantbuffers. For more info please see CL#1172125
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLContext.cpp#75 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#126 edit
EPR #010002 - Change OpenCL version number from 1849 to 1850.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1596 edit
EPR #010002 - Change OpenCL version number from 1848 to 1849.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1595 edit
ECR #304775 - Mipmaps support. Fix falures after CL#1163104
- don't allocate extra view if level/layer was created already
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#124 edit
ECR #304775 - Mipmaps support
- Fix the view creation for the host path transfers. GSL can ignore the original mipmap surface dimensions and apply the new settings
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#220 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#123 edit
EPR #420701 - WDDM 2.0
- Indicate lite initialization via a new parameter initLite. This is needed as OCL\OGL can query devices first and lot of setup in IOL may not be really needed. On Win10, we create paging\fences for sync which dont get destroyed by the OS unless process is killed. This may prevent slave GPU powerdown in PX cases.
- Disable WriteFence for OpenCL for now.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/7765/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLContext.cpp#72 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#122 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.h#48 edit
EPR #410989 - [Project Brahma] - CL-GL Support
At present, multi-gpu is not supported on Brahma stack. Thus, glxGetContextMVPUINFOAMD hasn't been implemented by OGL.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDeviceGL.cpp#24 edit
EPR #397491 - Disabling 32 bit generic address space temporarily because of bug 10841.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#121 edit