milestone report

GSOC 2011: Final Milestone Report

Blog post by antifinidictor on Mon, 2011-08-22 16:13

Hello all,

GSOC 2011 is over, and the SDL 1.3 for Haiku is over- for now.
I intend to continue working on the project, although I probably won't start again for a while, as the recent errors have been frustrating and I need to relax a bit.

The almost-most-recent-version is available at https://bitbucket.org/antifinidictor/haiku-sdl-1.3/; I had some problems with my computer and haven't been able to upload the most recent version yet, which just has some changes to which functions are static and which aren't.

Problems with the current version that I have been unable to solve:
(1) Window resizing is generating SEGFAULTs again. It hadn't been for a long time, but recently started up again. Since I don't have any regression tests, I am not sure when this error reappeared (sometime since I started working on fullscreen errors). OpenGL windows can be resized all they want.
(2) Switching to and from fullscreen (both in OpenGL and not) cause the application to somehow lose keyboard focus, or something; it remains permanently on top of all other windows, but usually doesn't respond to shortcuts. This error, to my knowledge is somewhat sporadic, and occurs most frequently with OpenGL.
(3) You cannot start normal applications in fullscreen mode (OpenGL usually works, but sometimes it doesn't). When you do, the video mode changes, and the window takes up the entire screen, but the screen is entirely white. The window responds to normal keyboard commands.
Otherwise, to my knowledge, SDL 1.3 video works for Haiku. I'll add more errors as I remember them.

I would like to thank the Haiku community for supporting GSOC 2011 projects. This was by far the most interesting work I've done to date, and I look forward to working with Haiku in the future!

GSOC 2011: Three-Quarter Term Milestone Report

Blog post by antifinidictor on Fri, 2011-08-05 21:17

So far SDL 1.3 for Haiku has made significant progress. Video draws correctly both with and without opengl, audio appears to already work, and various tests provided in the SDL test suite seem to work. However, there are a few significant bugs I have come across.

The first error occurs when resizing the window. The application occasionally receives the illegal operation signal or a SEGFAULT. The illegal signal operations occurred when blitting from the backbuffer I allocated to the screenbuffer provided by BDirectWindow's DirectConnected() function. Presumably this was caused by the window being resized in the middle of a draw operation, since this error only occurred after I moved blitting to a separate thread. Before this, blitting was done in the application thread, and caused a slowdown of SDL's event handling by up to 1 second (moving around the mouse required redrawing the window). I received several suggestions to fix this error, including move the blit code back to the application thread, use mutexes, and use BBitmaps. I have since transferred drawing operations to a BBitmap object, which appears to have removed the illegal operation signal. However, resizing the window continuously will result in the occasional SEGFAULT. I only discovered this error today; I intend to investigate it further over the weekend. So far I have noted that the SEGFAULT occurs in different places on different runs, although I have not officially found a connecting pattern.

The OpenGL implementation is incomplete, but works surprisingly well, thanks to BGLView. There are problems with loading libraries, however; for some reason, the flag indicating a library was successfully loaded is being set to false. I will experiment with this error in the coming weeks, and hopefully resolve it. OpenGL also has a resizing issue where any attempt to resize the window causes the program to freeze- without setting off any errors or signals in gdb.

In addition to fixing these errors, I intend to add functionality that I missed in the process of writing the video code. For instance, many SDL flags passed to the window are not yet handled; currently only window resizing capability is used.

I intend to add to this list over the weekend, and possibly after the due date of this blog.

Note that the SDL repository I am editing is available at bitbucket.org (but I have not had access to internet this week up until today, and won't be able to upload the most recent changes until Sunday at the earliest): https://bitbucket.org/antifinidictor/haiku-sdl-1.3/

GSOC 2011: Midterm Milestone Report

Blog post by antifinidictor on Fri, 2011-07-15 02:56

So far:
SDL 1.3 officially compiles.
Whether it works is another story.

I've created 7 patches so far, four of which were created in logical pairs, one of which was completely useless. The 7th patch (SDL-1-3_patch06.diff) was sent out to the haiku-gsoc mailing list today, and should allow the code to compile. Note that not all functionality is implemented in the video code.

I've also started working on creating a Google code project to host my repository; this will make it easier to follow my progress if I succeed. So far I have had trouble pushing my repository to the project site; it's a lot of information, and takes about five hours. I've tried twice and it failed both times, although the failure may have been due to other things running; I'll have to try again tonight.

I finally managed to find a machine that works with both Haiku's graphics and internet drivers, and am moving my project onto this machine. This probably won't affect my workflow too much, but it will increase the number of updates I can make.

Future:
I will implement the more important video functionality missing in the current compiling version over the next couple of weeks, as well as review the code I have for any obvious bugs. By the next milestone report I will have, at the very least, a simple test that creates and destroys blank windows.

At any rate, I think I've made some good progress, and I hope I will continue to do so over the remaining weeks of the project.

GSOC 2011: Quarter-term Milestone Report

Blog post by antifinidictor on Tue, 2011-06-14 22:49

As anticipated, I was able to do little more than set up my environment during the first stretch of GSOC and the last few weeks of school and my previous internship. I was able to find computer with a compatible network and graphics card, which should hopefully be faster than running Haiku on a virtual machine on my normal computer. I also successfully installed haikuporter, although I am having some trouble using it. I am also trying out an IRC account.

I plan to install SDL 1.2 by the end of this week in order to make sure my environment is properly set up. I am currently having problems with haikuporter, which is complaining that the ports I wish to install do not exist. I'm not sure whether there is something else I need to download first or not to get this working; I posted a question about this on the HAIKU-GSOC mailing list. I hope to also make a stab at writing a .bep file for SDL 1.3; I admit I am not completely certain as to what this involves, but from reading the wiki it looks like it can be described as a python makefile?

Since school and my previous internship are completed, I should make much greater progress over the next few weeks. I look forward to finally being able to put my full time and effort into this project.

VBox guest additions: end of bonding period; first quarter goals

Blog post by scgtrp on Wed, 2011-05-25 10:25

During the community bonding period I played around with the existing guest additions patch, getting it to build and switching my repository over to git to preserve my sanity. I've learned a lot about the way Haiku drivers and modules work, especially in the last few days, and it seems that a few things are simpler than I originally thought they'd be and some things are more difficult.

As an example of the latter, it turns out that drivers can't provide APIs to other drivers; only modules can do this. This posed a problem for the shared folders module, which needs to either be in a separate module or contain extreme hackiness. As a driver, the original vboxguest couldn't allow vboxsf to use its API. To solve this, mmu_man and I decided that the best first task would be to break up the existing vboxguest driver into a module (vboxguest) containing the guest additions and a driver (vboxdev) which exposes the library to userspace as /dev/misc/vboxguest. This is now finished.

It turns out guest properties and clipboard sharing are already working, and mouse pointer integration is at least partially implemented, though I've not managed to get it to work yet. This should free up a bit of time for some of the other things.

As my first major subproject, I'm planning to implement a shared folders filesystem module - as I (and possibly a couple of other students?) are coding exclusively in VirtualBox, it makes sense to focus on the things that make development easier first, and being able to share files with the host is certainly useful at times.

GSoC 2011: May 23 (end of community bonding period) Milestone Report

Blog post by antifinidictor on Mon, 2011-05-23 08:11

During Community Bonding period, I began the process of setting up my Haiku working environment. Initially I attempted to install Haiku on my machine using VirtualBox; while this ran successfully, I could not access the internet or USB devices from my virtual machine (and hence could load the SDL libraries into Haiku). I have since created a Haiku-USB drive which also loads, although my graphics hardware breaks down if I do not run Haiku in safe mode, and Haiku still does not recognize my ethernet connection. I have also tried connecting via Wifi, with similar results.

I have briefly discussed the issues with my mentor, and will inform him and the Haiku community of my computer's hardware in a few days. For now all I can say is that it is a Sony VAIO (laptop), and I have had compatibility issues before with certain types of software and drivers. I will have access to another machine with different hardware after June 10, if necessary.

I hope to have a working Haiku installation on my machine, and possibly have downloaded and compiled SDL 1.2 by the quarter term.

===Edit 5/29/2011===
Thanks to my mentor and those who commented below, I was able to get internet on the VirtualBox working using the IntelPro 1000 chipset. This is slow, but it should be good enough for me to get started. Of course, since finals is the week after next, I will be doing almost no work during until June 10; but I will download SDL 1.2 onto the virtual machine and see if I can get it to compile.

Syndicate content