P4 to Git Change 1090376 by gandryey@gera-dev-w7 on 2014/10/23 11:03:32

ECR #304775 - Move OCL runtime to the latest HSA1.0 spec
	- Use HSA defines

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#196 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#336 edit
This commit is contained in:
foreman
2014-10-23 11:19:22 -04:00
parent 5abff30311
commit 27384c607e
2 changed files with 76 additions and 90 deletions
+14 -11
View File
@@ -576,22 +576,25 @@ VirtualGPU::create(
bool
VirtualGPU::allocHsaQueueMem()
{
amd_queue_t queue;
memset(&queue, 0, sizeof(queue));
hsaQueueMem_ = new gpu::Memory(dev(), sizeof(queue));
if (hsaQueueMem_ == NULL) {
return false;
}
if (!hsaQueueMem_->create(gpu::Resource::Local)) {
// Allocate a dummy HSA queue
hsaQueueMem_ = new gpu::Memory(dev(), sizeof(amd_queue_t));
if ((hsaQueueMem_ == NULL) ||
(!hsaQueueMem_->create(gpu::Resource::Local))) {
delete hsaQueueMem_;
return false;
}
void* cpuPtr = hsaQueueMem_->map(NULL, gpu::Resource::WriteOnly);
queue.private_segment_aperture_base_hi =
amd_queue_t* queue = reinterpret_cast<amd_queue_t*>
(hsaQueueMem_->map(NULL, gpu::Resource::WriteOnly));
if (NULL == queue) {
delete hsaQueueMem_;
return false;
}
memset(queue, 0, sizeof(amd_queue_t));
// Provide private and local heap addresses
queue->private_segment_aperture_base_hi =
static_cast<uint32>(dev().gslCtx()->getPrivateApertureBase()>>32);
queue.group_segment_aperture_base_hi =
queue->group_segment_aperture_base_hi =
static_cast<uint32>(dev().gslCtx()->getSharedApertureBase()>>32);
memcpy(cpuPtr, &queue, sizeof(queue));
hsaQueueMem_->unmap(NULL);
return true;
}