P4 to Git Change 1067933 by gandryey@gera-dev-w7 on 2014/08/19 12:34:09

ECR #304775 - HSAIL: Direct SRD support
	- Copy SRD to CB1 for image views to avoid a wait for SRD resource when image view is destroyed.

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#261 edit
Этот коммит содержится в:
foreman
2014-08-19 12:49:10 -04:00
родитель ced3dd9589
Коммит 83baaf707e
+18 -3
Просмотреть файл
@@ -3941,9 +3941,24 @@ HSAILKernel::loadArguments(
HSA_IMAGE_OBJECT_SIZE, HSA_IMAGE_OBJECT_ALIGNMENT);
}
else {
uint64_t srd = image->hwSrd();
WriteAqlArg(&aqlArgBuf, &srd, sizeof(srd));
srdResource = true;
//! \note Special case for the image views.
//! Copy SRD to CB1, so blit manager will be able to release
//! this view without a wait for SRD resource.
if (image->memoryType() == Resource::ImageView) {
// Copy the current structre into CB1
memcpy(aqlStruct, image->hwState(), HSA_IMAGE_OBJECT_SIZE);
ConstBuffer* cb = gpu.constBufs_[1];
cb->uploadDataToHw(HSA_IMAGE_OBJECT_SIZE);
// Then use a pointer in aqlArgBuffer to CB1
uint64_t srd = cb->vmAddress() + cb->wrtOffset();
WriteAqlArg(&aqlArgBuf, &srd, sizeof(srd));
memList.push_back(cb);
}
else {
uint64_t srd = image->hwSrd();
WriteAqlArg(&aqlArgBuf, &srd, sizeof(srd));
srdResource = true;
}
}
//! @todo Compiler has to return read/write attributes