Kokua and Black Dragon go 64-bit in Second Life

As the Lab’s 64-bit Alex Ivy viewer progresses through release candidate stage and the point where the code is regarded as a stable enough for TPVs to start picking up, viewer developers having been doing just that.

First out of the v5-stage gates at the start of September was Nicky Perian with 64-bit versions of Kokua for Windows and Mac. Towards the middle of the month, NiranV Dean issued a 64-bit version of Black Dragon for Windows.

It should be noted that in neither case are the provided 64-bit viewers the final, polished article. Nicky has clearly labelled his versions as test releases, which Niran is referring to his as an alpha series of releases.

I’ve not driven either viewer to any great extent, so the following is more informational than anything else. Please refer to the links at the end of this article for all download links to the viewers.

Kokua 64-bit

The Kokua 64-bit builds come in both RLV and non-RLV versions. Each is functionally identical to the other, with the exception of … RLV inclusion.  For convenience, I downloaded the 64-bit Windows version with RLV. all of the versions are based on the Lab’s Alex Ivy code base.

The Windows viewer builds include the SL Launcher .EXE, designed to ensure the correct version of the viewer (32-bit or 64-bit) is installed on your PC when updating the viewer. However, at this point, neither actually utilises it directly: the installation short-cut for the viewer points directly to the viewer .EXE. As the Launcher is also intended to start / terminate the viewer’s crash logging, and given – if I recall correctly – Kokua utilises the Lab’s viewer update process, I assume use of the Launcher may / will be folded-into the Kokua’s 64-bit Windows flavours in the future.

Beyond this, the viewer is functionally identical to the last full release of Kokua (, with additional updates from the more recent LL viewer releases since that date. This means the 64-bit viewer now includes the Asset HTTP updates from the Lab and the current release version ( I understand the 32-bit versions of the viewer have also been merged with these updates, but have not been formally released.

Nicky does note that there are some issues with the Mac 64-bit version of the viewer, some of which prompted an update following an initial release of the test viewers. Some of these have been logged via JIRA with the Lab (such as BUG-41395). For those downloading and trying the viewer, he particularly requests that feedback be given on notifications and taking / processing snapshots, which have caused noticeable issues in merging the code (obviously, feedback on other aspects of the viewer and problems encountered is also welcome).

Black Dragon 64-bit

Black Dragon currently has the SL Launcher removed. This generates a warning on starting the viewer, advising users to run things from the Launcher and to update short-cuts accordingly. However, it doesn’t interfere with the viewer’s operations.

The 2.9.0 64-bit version incorporates Niran’s more recent updates up to his 32-bit 2.8.2 release. For those with hardware which can handle it, Black dragon continues to offer a graphics experience several points above other viewers. For some people, this is somewhat mitigated by the viewer’s menu system presentation, which can take a little getting used to but really isn’t that hard to steer around. The large number of graphics options exposed / added can be a little frightening to those not into graphics tweaking – but again, there’s no real need to play around with any you’re not familiar with when adjusting settings.

In addition to the 64-bit iteration, the viewer includes further refinements to SL shadows, including an attempt to deal with a particular annoyance for photographers: disconnected shadows. That is, shadows which just fall short of actually visually connecting with the object casting them, and which at time no amount of jiggling with settings such as shadow quality and/or shadow bias can fix. A further change is that HTTP pipelining has been disabled within the viewer.

Rough-and-Ready Performance Notes

The benefits in using 64-bit versions of the viewer – for those who can – are much better memory utilisation and potentially a reduced crash rate and, potentially, a boost in overall viewer performance. In terms of the latter, and while direct comparisons are always subjective (and dependent upon some factors outside of your control, such as the complexity of any other avatars in your field of view / in the region, etc), I carried out some very rough-and-ready tests using ~Neive~ as my testing-point, and with the viewers all set-up according to my review system specifications.

Baseline test location: ~Neive~ 199, 155, 27, facing west, with three (or in the case of the Black dragon 32-bit version test, four) avatars within draw distance. All measurements were taken after setting the preferences in each viewer, and clearing object and texture caches before doing a fresh load to ensure each viewer had the scene locally cached. I then launched each viewer in turn, let the scene load from cache, measured, shut-down and launched the next & repeated.

FPS Static FPS panning left / right
Firestorm 64-bit 25 22-28
SL Alex Ivy 38 33-38
Kokua 32-bit 23 20-23
Kokua Alex Ivy 37 34-37
Black Dragon 32-bit 2.8.22 36 33-38
Black Dragon 64-bit 2.9.0 Alpha2 45 33-46


  1. Firestorm 64 is currently not using the Lab’s 64-bit code base, and so might be considered an indirect comparison, rather than a like-for-like code base comparison.
  2. Black Dragon has many additional exposed / tweaked graphics options, and a number of defaults somewhat different to the default viewer. In measuring, I attempted to tweak the viewer back more towards the default viewer.

Also note that the static fps numbers are a median based on fluctuations in numbers; the panning figures represent the average high/low fps values when panning. All measurements taken via the Stats floater (CTRL-SHFT-1) to ensure consistency of displayed floaters in the viewer.

As indicated towards the top of this article, I’ve not really played that much with either viewer, so cannot comment in-depth on overall performance  / stability, etc.

Links and Downloads

Black Dragon

Blackdragon logoBlack Dragon, the v3-style viewer by NiranV Dean updated to version (aka version on Tuesday, December 29th.

The update primarily comprises a re-working of the viewer’s preferences floater, with Niran noting, “while the display preferences tab has gotten quite some upgrades and consistency changes, all the other panels were left out… until now.”

The most noticeable change is that several more of the tabs now have a slider to the right, the result of options which had previously been presented in two columns now appearing in a single column. As well as this, some options have been moved around to present a more logical top-down flow, as has previously been seen in the Display option tab, and with radio buttons replaced by combo boxes.

Niran has been re-working the Black Dragon Preferences floater, offering an approach to the tabs which matches the top-down flow seen within the Display options tab (click to enlarge)
Niran has been re-working the Black Dragon Preferences floater, offering an approach to the tabs which matches the top-down flow seen within the Display options tab (click to enlarge)

The result is a more logical flow, but currently comes at a cost  – the aforementioned increase in sliders on the right of some of the tabs. However, and here’s where an assumption on my part comes in – I do wonder if this might only be an interim thing, and whether Niran will be adding  expanding sub-tabs, again in the same style as the Display tab – as possibly evidenced by the inclusion of one such sub-tab in the Sound and Media tab.

The Sound and Media tab includes a sub-tab expansion option - a sign that expansion capabilities are to be added to the Preferences tab
The Sound and Media tab includes a sub-tab expansion option – a sign that expansion capabilities are to be added to the Preferences tab

Niran also notes that this release was to have contained the Project Bento avatar skeleton updates, but these have been left out. This is probably a wise decision; Bento is still in formative beta testing, and could be subject to changes throughout the next few months, as such the viewer code (and server-side support) could undergo change. As it is, Bento support is best witnessed on Aditi.

This is clearly a tidying-up, rather than a major update. however, it continues Niran’s work in offering a consistent presentation of the UI within his viewer. Also, given that the Lab prefers TPVs do not make significant releases over the holiday period, keeping the updates to UI clean-up is probably no bad thing.

And it certainly makes a nice little Christmas present for Black Dragon users.

Additional Links

Black Dragon

Blackdragon logoBlack Dragon, the v3-style viewer by NiranV Dean updated to version (aka version on Monday, December 14th.

The update primarily includes fixes for issues with Niran’s implementation of Avatar Complexity, and for crash issues, and includes a refactored Places floater.

Niran introduced Avatar Complexity in version of Black Dragon. As I noted when reviewing that release, the split between controls Niran had introduced meant that it could require some juggling with the sliders to get things settled when making random adjustments. However, the was a slightly worse issue for Black Dragon users in that many found that by default, all avatars around them were either “jelly babied” – appearing as a single solid colour to reduce the rendering load on their computer – or not at all.

The reason for this seems to be that Niran missed the fact the LL code sets a default value for Avatar Complexity, based on the anticipated graphics performance of the system on which the viewer is installed, as calculated by the viewer on initial start-up – something he removed from Black Dragon a while ago.  Thus, avatar rendering was defaulting to an exceptionally low value, causing avatars around the user to appear as “Jelly Babies”.

Niran has now introduced his own default value to the viewer, which should correct things. Some users may find it worthwhile playing with the sliders to achieve an ideal for their system / circumstance. He also offers a brief explanation of Avatar Complexity, which essentially replaced the old Avatar Draw Weight (ADW), which in turn replaced the original Avatar Rendering Cost (ARC), within the release notes, and those interested can find out more by reading the official SL wiki entry on Avatar Complexity, or my own overview of the capability.

The Places floater overhaul sees the layout refactored to match other panels in the viewer, and a number of fixes added to certain niggles found with it, such as buttons not working (e.g. the Back button at the top of the panel) or it remaining stuck in its last used state.

The Places floater has been overhauled for Black Dragon (left). Issues such as buttons not working correctly or the floater getting stuck in its last used state (shown on the right) have been corrected and the floater's layout tidied-up
The Places floater has been overhauled for Black Dragon (left). Issues such as buttons not working correctly or the floater getting stuck in its last used state (shown on the right) have been corrected and the floater’s layout tidied-up

Black Dragon also includes two additional crash fixes which make updating to it highly recommended. This first is for a bug arising from leftover code, which would be triggered as soon as certain avatars, objects, etc., came within the viewer’s Draw Distance. The second is for a crash occurring whenever you right-click while in either zoom/pan/orbit mode in the tools floater (build window) or when in object view mode in the camera controls floater. As always, please refer to he release notes for the full list of updates.

Additional Links

Black Dragon going Chromium

Blackdragon logoOn Saturday 17th October, Niran V Dean released Black Dragon, which sees his viewer merged with the latest release from Linden Lab, gain the Lab’s Chromium Embedded Framework code for media, and which  includes some updates from Niran himself.

The latter most notably take the form of a re-working of the Display tab in the Preferences floater. Here, Niran has replaced the older scrolling tab layout with a more compact version, with expandable sub-tabs allowing feature sets to be viewed and expanded whilst also offering quick and easy on / off check boxes for functions users may wish to enable / disable, but where they don’t necessarily wish to change the associated settings.

The new Display tab in Preferences offers a series of function defined expandable sub-tabs, some of which had default on / off check boxes.
The new Display tab in Preferences offers a series of function defined expandable sub-tabs, some of which had default on / off check boxes.

The sub-tabs can be individually opened / closed by checking on the + to the right of each tab’s title bar, and those opened will remain so until either closed, or the viewer session is closed and re-started. Opening multiple sub-tabs will add a scroll bar to the right of the Preferences floater when displaying the contents of the Display tab, allowing for smooth navigation between sub-tabs.

Clicking on the + on any od the Display sub-tabs will expand it to reveal all the associated options and settings. Sub-tabs will remain open until either manually closed or the viewer is shut-down
Clicking on the + on any of the Display sub-tabs will expand it to reveal all the associated options and settings. Sub-tabs will remain open until either manually closed or the viewer is shut-down

The inclusion of the CEF code from the Lab sees Black Dragon move a little ahead of the curve feature-wise, given the code still is only at project status when the Lab prefers TPVs not to adopt it until it has reached RC status.  That said, the code appears to work well within the viewer, allowing media to be easily viewed and well as allowing the expected manipulation of webGL elements either through the viewer’s MOAP capabilities or through the built-in web browser, as the very simple video below demonstrates.

Overall, a tidy update for the viewer, with the new Display tab layout present an interesting approach to encapsulating the myriad from display options available in the viewer in a format that allows for ease of use and viewing. While scrolling and expanding options aren’t to everyone’s liking, it does offer a tidy way of presenting things, with the quick on / off check boxes on some of the sub-tabs providing a good alternative to the growl factor of otherwise having to scroll and / or open / close sub-tabs to in order to disable or enable the functions.

Those on Black Dragon who produce media products in SL, or who wish to test their MOAP applications can, with this release, get to test their items without having to necessarily fall back on the Lab’s project viewer, but with the potential for updates to be pushed out by the Lab slightly ahead of them reaching any TPV, it might still be an idea to watch the Lab’s own viewer channels, just in case things get slightly adrift.

Note the video included in this article is only a very simple demonstration of WebGL manipulation in a CEF viewer. It is not intended as an in-depth demonstration or as a significant commentary on CEF use within the viewer, where it is intended to replace the use of llqtwebkit for media support (including within in-world televisions, etc.). WebGL demos via David Walsh and with thanks to Whirly Fizzle for the link.

Additional Links

Black Dragon updates: attachment fixes and more

Blackdragon logoNiranV Dean once again issued a rapid-fire series of updates to Black Dragon in week #29, upping the version number from to in the process.

The reason for the speed of updates is a combination of the Lab pushing through quite a lot at the moment, and Niran providing some tweaks, fixes and updates of his own / sourced from other RPVs.

The first update out of the gate was, on Monday July 13th, which incorporated the Lab’s summer Maintenance release (version at the time of writing – see the release notes on the Lab’s release for a list of the updates incorporated into Black Dragon).

This was followed on Wednesday, July 15th by version, which incorporated the Lab’s Project Big Bird updates. These are a series of viewer-side fixes for a fair number of attachment issues people have been experiencing since the arrival of AIS v3, and some which pre-date it. These include, but are not limited to, teleporting / crossing a region and having attachments removed; teleporting or crossing a region and losing attachments in your view while others can still see them (and vice-versa); seeing attachments as removed but the viewer reports them as attached, etc.

This version also incorporates Kitty Barnett’s “borderless window mode” (Preferences > Display). when enabled, this will expand the viewer window to the full size of your screen, hiding the title bar without the need for a re-log. When disabled, will return the viewer window to its last framed sized.

The borderless window option with expand the viewer window to your full screen size, hiding the top bar and borders
The borderless window option with expand the viewer window to your full screen size, hiding the top bar and without the need fora re-log

Released on Sunday, July 19th, version contains further maintenance tweaks and updates, notably the official code for right-clicking and selecting worn mesh.

Niran has also addressed the issue found in the Notifications Viewer, where the buttons for accepting / declining a group invitation are only displayed when an invitation is received – if you miss it due to AFK or anything, and then open the invitation in the Notifications floater, it is displayed without any means to act upon it – see BUG-9625, which also points out that invitations to Experiences, and requests to accept deny debit permissions suffer the same issue).

group join
Niran has added the buttons for accepting / rejecting a group invite when it is displayed in the Notifications floater.

As well as the above, Niran has included a range of fixes and updates with each of these releases – please refer for the relevant release notes for details – and is continuing to tweak things on the rendering side of things, improving things like lens flare, ans also tweaking the Unified Snapshot floater.

There will doubtless be a further Black Dragon update winging its way towards release very soon, one which contains the Lab’s Viewer-Managed Marketplace updates. In the meantime, these updates ensure Black Dragon remains on a par with the majority of the Lab’s offerings available in the viewer release channel.

Additional Links

Black Dragon: notifications and shadows

Blackdragon logoOn Thursday, July 9th, NiranV Dean released version of his Black Dragon viewer.

The release brought with it a rapid-fire implementation of the Lab’s new notifications update from LL, which comes a little ahead of the curve, given the Lab prefer their code to be integrated into TPVs once it reaches RC status, and can be regarded as somewhat more stable than might be the case with a project viewer release. However, the code is such that it is apparently easy to manage should updates be forthcoming as that project progresses.

In implementing the notifications update, Niran has made some subtle changes to the notifications floater itself, improving the overall layout, although the overall functionality is pretty much as offered through the Lab’s current project viewer. Rather than describe the functionality here, readers are invited to read my overview of the project viewer.

The other major update with this release of Black Dragon release is related to shadows and lighting, and specifically, the uncoupling of shadow rendering from draw distance.

Because shadow rendering has been bound to draw distance, shadows tend to fade away the closer they are to your draw distance limit, with the result that the further objects are away from you, the less well-defined their shadows appear / the less shadows may influence how they appear, with objects close to the edge of your draw distance sometimes appearing shadowless.

With this change, Niran has added a new slider to the Display tab of Preferences, allowing the user to independently set a “shadow rendering distance”, thus allowing a better rendering and representation of shadows independent of draw distance.

Black Dragon the new shadow rendering distance slider
Black Dragon the new shadow rendering distance slider in Preferences. A similar slider is also in the Machinima sidebar

The result is a much improved depth of view in-world, and greatly enhanced snapshots (see Niran’s samples accompanying the viewer’s release notes).

By-and-large, extending the shadow rendering distance shouldn’t result in any appreciable performance hit. However, there is a caveat, as Niran explains:

Increasing the shadow draw distance will reduce the overall shadow precision, because shadows are split into shadow clip planes, 4 shadow textures if you will, these shadow textures have a given resolution (which you can set in preferences), increasing the shadow rendering distance scales up all 4 planes equally, increasing the area one texture has to cover, reducing the precision in that area obviously. You could counter this by increasing the shadow resolution or multiplier, but that would impact frame rate.

A side benefit of this, as Niran notes, is that because volumetric lighting is calculated via the shadow clip planes and shadow maps, increasing the shadow rendering distance enhances the volumetric lighting effects in the viewer. Again, check the sample images Niran provides with the release notes.

Other updates in this release include:

  • Re-enabling of the experimental auto-hiding of the Textures, Sounds, Calling Cards, Landmarks, Notecards, Scripts, Photo Album, Animations, Gestures, Favourites and My Outfits folders in Inventory (debug: DebugHideEmptySystemFolders)
  • Disabling of the auto-hiding of empty folders by default
  • Improvements to SSAO defaults
  • Freeze world and mode toggling issues, as reported in STORM-2118, fixed and implemented in this Black Dragon release
  • Further RLVa updates.

As always, for the full range of changes / updates, please refer to the release notes.

Additional Links