antifinidictor's blog

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.

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.

GSoC: Haiku 2011- SDL Revamp

Blog post by antifinidictor on Mon, 2011-05-02 06:11

This summer, I will be delving into the Haiku implementation of SDL 1.2 and updating it to support SDL 1.3. Since the SDL 1.2 implementation had a number of bugs associated with it, it may be necessary to completely rewrite the implementation.

I currently hold an internship that ends with Spring Quarter in early June. My time up until June 10 will therefore be extremely limited, but I will do my best to make time to work on Haiku. I hope to spend the community bonding period getting to know the Haiku community and discussing the project with my mentor. I also hope to meet or talk with other GSoC developers, particularly the other seven people working on Haiku. Discussing the project with my mentor will help me develop the best strategy and perform initial setup. Meeting and talking with other developers will help me understand the operations of Haiku and how my project fits within the overall Haiku project.

I hope to make progress on setting up my Haiku development environment during the community bonding period as well.

Syndicate content