How does dng workflow work?

Hello,
I don’t really know what the technical details of linear dng are, and what kind of metadata are used to display it, but i’m struggling to understand how to make a workflow based on DNG exports work. It seems every software interpret it differently.
I mostly use dxo + darktable combination for which i use TIFF because export look very different once opened in darkable : see for instance this shot exported in jpeg from dxo, compared to exported to DNG, then opened in darktable without any correction and rexported in jpeg :

DXO :


Darktable :

A while ago, i convinced myself it was a bug in darktable, opensource software supporting Adobe format, but recently a friend gave me access to his second seat luminar AI license and the same problem occurs :
DXO :


Luminar AI no correction:
Darktable every module deactivated
Darktable default profile

I’m a bit lost on how to build a workflow around DNG with such big differences ! I wonder maybe it is a difference in jpeg export options, but the difference are quite visible on preview in the softwares too.

I suspect at least for luminar AI that it is luminar fault and it applies some hidden processing like color profile or white balance it is not telling user about. Because once opened, the photo looks exactly like DXO rendering, but after a few seconds, the preview turns into the jpeg version with some color shift towards red.
For darktable, my best working theory is that PL adds a color profile in the DNG that darktable fails to read and instead uses a standard profile before applying various color corrections and converting to Rec 2020 for processing, which is why default settings end up to look a bit more similar to PL but not quite the same and the raw import is totally different. But i have no idea how to confirm that, or what profile i should choose if it is a standard profile but not the one darktable recognizes as default.

dng is a container format, that is it can contain either raw (mosaiced) data or demosaiced RGB data eg a tif or jpg.
A linear dng is effectively a tif, without an assigned white point, file in a dng container. This is the same for LR hdr or pano files.

A linear dng is treated by software as a raw file, that means the software will open the file and apply its own default processing including white point, to the file. This is why you see different results with different software.

Thanks for the nice high level summary, put me on the right track. For darktable, since it shows exactly what it does, i think i know understand what happens. I looked at the xmp data DXO embed in DNG :

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.5.0">
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about=""
    xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/"
    xmlns:DxO="http://ns.dxo.com/framework/1.0/"
    xmlns:xmp="http://ns.adobe.com/xap/1.0/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:aux="http://ns.adobe.com/exif/1.0/aux/"
    xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
   crs:ColorNoiseReduction="0"
   crs:LuminanceSmoothing="0"
   crs:Sharpness="0"
   crs:AlreadyApplied="False"
   crs:ProcessVersion="11.0"
   DxO:WhiteLevel="30128"
   DxO:AdobeWhiteLevel="31576"
   DxO:OriginalColorspace="sRGB"
   xmp:CreatorTool="DxO PhotoLab 4.3.3"
   xmp:ModifyDate="2021-10-15T02:06:08"
   xmp:CreateDate="2021-10-15T02:06:08"
   aux:LensInfo="240/10 700/10 40/10 40/10"
   aux:Lens="FE 24-70mm F4 ZA OSS"
   photoshop:DateCreated="2021-10-15T02:06:08">
   <crs:Look>
    <rdf:Description
     crs:Name="Adobe Color"
     crs:Amount="1.000000">
    <crs:Parameters>
     <rdf:Description
      crs:CameraProfile="Adobe Standard"
      crs:LookTable="E1095149FDB39D7A057BAB208837E2E1">
     <crs:ToneCurvePV2012>
      <rdf:Bag>
       <rdf:li>0, 0</rdf:li>
       <rdf:li>22, 16</rdf:li>
       <rdf:li>40, 35</rdf:li>
       <rdf:li>127, 127</rdf:li>
       <rdf:li>224, 230</rdf:li>
       <rdf:li>240, 246</rdf:li>
       <rdf:li>255, 255</rdf:li>
      </rdf:Bag>
     </crs:ToneCurvePV2012>
     </rdf:Description>
    </crs:Parameters>
    </rdf:Description>
   </crs:Look>
   <dc:description>
    <rdf:Alt>
     <rdf:li xml:lang="x-default">                               </rdf:li>
    </rdf:Alt>
   </dc:description>
  </rdf:Description>
 </rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>

And it stores white point. Even though exif value is set to 65000, xmp values differ. On top of that, darktable is indeed re-applying white balance according to some camera info. After setting the white point according to xmp file, disabling the whitebalance, and settting the tone curve (roughly manually) to something similar to Adobe standard, the file looks almost the same as DXO. So basically darktable ignores the xmp metadata, i’ll see if it is possible to fix that.

For luminar AI i don’t know what happens since it does not display anything about what happens under the hood, but i guess it is something similar ignoring some values.