Friday, June 3, 2022

Beginning of the Fourth Month

     This week marks the first week of my fourth month on the Gateware project, and it's a wild feeling thinking about my upcoming graduation while still working away at this project. Last month encompassed my research into gtl::factory, a data structure that keeps contiguous memory by shuffling its data members in an array, but maintaining order of the items using a router array. This week I only had to add two more functions to the .cpp file to ensure GBlitter's transition from ld_vector to factory could be as smooth as possible. And I did have some success with the first few tests of the transition! Only five errors popped up initially, and all of them were removed within the same day as I created some functions to fill in the ld_vector related gaps that Factory didn't have. The new functions check the validity of the key passed into the router, and will return false if the key assigned isn't a valid range in the data array. Other than the new function, GBlitter only needed one line of code adjusted, a call to set_valid, which got replaced with a call to remove. Remove is slightly slower than ld_vector's set_valid, but that's due to the fact that memory is being manipulated, where as set_valid only marks a section of memory as invalid and safe to be over written. 

    Another task I had my hands on this week was investigating why one of our Macbook testing laptops wouldn't compile our code, and the main issue was caused by the recent install of the new OS. Unfortunately, the test machine itself is rather old and doesn't have lots of disk space left after being upgraded to Monterey, the newest version of Mac OS at this time. Installing all the programs also was a struggle, as disk space was quite the premium when attempting installing all the necessary programs needed for running Gateware on mac OS.

    The last thing I began to dive into is more Vulkan research. During month two I had created a function that allowed users to access the depth buffer image for the purpose of clearing. The good news I heard was that the function works as expected, but unfortunately GVulkanSurface's current structure does not allow the user to call the function Vulkan uses to clear the depth buffer. I plan to find a solution in the coming days, so another Vulkan issue is sure to be interesting.

No comments:

Post a Comment