Performance of future Haiku versions

I use the following (works here):

glGenFramebuffers(1, &fFrameBufferID);
glGenRenderbuffers(1, &fRenderBufferID);
glGenTextures(1, &fTexture);

glBindFramebuffer(GL_FRAMEBUFFER, fFrameBufferID);

glBindTexture(GL_TEXTURE_2D, fTexture);
glTexImage2D(GL_TEXTURE_2D, 0, internal_format,  (GLsizei)YGetScreenSizeX(), (GLsizei)YGetScreenSizeY(), 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, fTexture, 0);

glBindRenderbuffer(GL_RENDERBUFFER, fRenderBufferID);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, (GLsizei)YGetScreenSizeX(), (GLsizei)YGetScreenSizeY());
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, fRenderBufferID);

GLenum fboStatus = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if (fboStatus != GL_FRAMEBUFFER_COMPLETE)
{
	switch (fboStatus)
	{
		case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT:			Debug("GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT error\n");			break;
		case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:	Debug("GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT error\n");	break;
#if !defined (GL_ES_VERSION_2_0)
		case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER:			Debug("GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER error\n");			break;
		case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER:			Debug("GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER error\n");			break;
		case GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:			Debug("GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE error\n");			break;
		case GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS:		Debug("GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS error\n");			break;
#else
		case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS:			Debug("GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS error\n");			break;
#endif
		case GL_FRAMEBUFFER_UNSUPPORTED:					Debug("GL_FRAMEBUFFER_UNSUPPORTED error\n");						break;
		default:											Debug("GL_FRAMEBUFFER_COMPLETE error\n");							break;
	}
}
glBindFramebuffer(GL_FRAMEBUFFER, 0);

Didn’t know about that but some googling shows that it too performs very badly.

It’s Vulkan-on-CPU. Of course it will perform badly compared to GPU-accelerated VK.

I mean if someone ports it why not… but larger features like real acceleration, even more network drivers, multi display improvements in app_server and drivers, and such… would be better motivation for donations from me and I imagine others too. Donations mean developers can either have more meet ups, better hardware, and or more paid work. I think the semi monthly status updates help with that too…

X512 seems to be working on some perf related things which is nice.

We can port just about any driver from FreeBSD. So, what drivers are you missing here, that FreeBSD has? Please file tickets…

[Citation needed.]

As @X512 mentioned, more drivers can potentially slow down the boot, but once you are booted, how will things be slower? The point of all those devices is to make the system faster or support some features, and you can disable them if you don’t need the hardware, right? The same is true on Linux.

As to why Haiku is generally faster, I quote @PulkoMandy from this old post:

A lot of the “feel” of how fast Haiku is, though, is due to input latency, and on that front, we are ahead of the class purely by not doing as much buffering as other OSes.

I know on code reviews we can sound a bit “grumpy” in asking for changes, but, your work here and on the other fixes you’ve done is very much appreciated, thank you! :slight_smile:

3 Likes

I was thinking the USB networking drivers don’t work yet? Other than the native ones.

USB WiFi is not ported, but USB ECM, which makes up the majority of USB Ethernet controllers, should work, at least – however, someone opened a ticket over a year ago saying it was broken under XHCI, I attempted a fix, and they never replied as to whether or not it was. So, I guess nobody uses (or cares) about USB Ethernet, then?

Hmm perhaps I should dig out the two or three adapters I have they are all ASIX I think but I don’t think I got them to work fully.

Yes, there’s some tickets about ASIX not working so well, but those chips are older and rarer, so I don’t think anyone’s even tried to fix them. (There were a few commits recently, but I don’t know how much they helped.)

I have tablet dock station with USB 3 gigabit Ethernet controller that is working on Haiku.

There are older 100/10 ASIX but there are also newer gigabit ones… they are really cheap regardless on ebay new so not hard to come by… alot of name brand adapters use asix as well without advertising it.

For example https://www.asix.com.tw/products.php?oppItemdetail&PItemID=131;71;112

Yes support is there but a little spotty and as waddlesplash mentioned and I was thinking wifi is also non existant.

I mostly agree with you @cb88, however I do think that something like SwiftShader would be good to have in the meantime while graphics drivers are still being worked on. Last I heard on that front, someone was still exploring porting OpenBSD’s driver stack to Haiku (or something like that).

Well I mean waddlesplash is the only active developer that has mentioned any interests in doing so that I know of but I don’t know if his interest has overcome the fact that it’s a massive effort to do properly :slight_smile: … personally I’m in the camp of make something work first then move to making it pretty… perhaps even an accelerated OSMesa only implementation initially… to divide and conqueror a bit more (granted we already have a gallium3d port so part of that actually is done). Hooking it into the accelerated drivers is probably some work though that could be skipped.

1 Like

Isn’t there still no support for BCM43xx wireless adapters despite FreeBSD 11 having support for them?

There is the list about the currently supported chips:

i was talking about having drivers for video cards, sound cards and other odd hardware on a server. drivers that required system to boot are fine lol

I know that at least for the BCM4313 Haiku doesn’t actually work with it, since that’s the one my netbook uses and it doesn’t even show up in the network settings. With regards to BCM43xx, I personally doubt most (if any) in the series do work at the moment.