Skip to content

oidn doesn't work on Xeon cpu with OIDN_DEVICE_TYPE_CPU #271

@wangchi87

Description

@wangchi87

Hi, there is an interesting thing, we just found the denoiser code doesn't work on Xeon 8365 or 8350C CPU.

Here is the code

inline void oidnErrorCallback(void* userPtr, oidn::Error error, const char* message)
{
	printf("OIDN Error: %s\n", message);
}

bool oidnDenoiser::Init()
{
	//device = oidn::newDevice(OIDN_DEVICE_TYPE_DEFAULT);	// works on Xeon 8365/8350C, not 12700
	device = oidn::newDevice(OIDN_DEVICE_TYPE_CPU);			// works on 12700, not Xeon 8365/8350C
	
	device.setErrorFunction(oidnErrorCallback);
	device.commit();

	const char* err = nullptr;
	device.getError(err);
	printf("OIDN Error: %s\n", err);
	//std::cout << "[OIDN] Using default device\n" << err;

	filter = device.newFilter("RT");
	filter.set("hdr", true);
	return true;
}

OIDN_DEVICE_TYPE_XXX fails to work on different CPU, so I am wondering where the problem could be? and Is there any way that I make it work both?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions